perm filename POX.XGP[UP,DOC]24 blob sn#679248 filedate 1982-09-30 generic text, type C, neo UTF8
COMMENT ⊗   VALID 03088 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00135 00002	/TMAR=200/PMAR=1998/BMAR=2
C00136 00003	↓ ¬εβ↓H¬P¬βrototype¬ O¬βverlay¬ X¬βerographics
C00137 00004	isα
C00138 00005	aα
C00139 00006	programαforαmakingαdocumentsαthatαtakeαadvantageαofαtheαspecialαfeaturesαavailableαon
C00140 00007	whichα
C00141 00008	canα
C00142 00009	beα
C00143 00010	copiedα
C00144 00011	andα
C00145 00012	processedα
C00146 00013	withoutα
C00147 00014	losingαtheαrelativeαpositionsαofαtheαcomponents
C00148 00015	thatα
C00149 00016	thereα
C00150 00017	areα
C00151 00018	noα
C00152 00019	forwardα
C00153 00020	referencesα
C00154 00021	(i.e.,α
C00155 00022	everythingα
C00156 00023	isα
C00157 00024	definedα
C00158 00025	beforeα
C00159 00026	itα
C00160 00027	isα
C00161 00028	usedα
C00162 00029	--α
C00163 00030	POXαis
C00164 00031	GEOMEDα
C00165 00032	andα
C00166 00033	SUDS,α
C00167 00034	butα
C00168 00035	itα
C00169 00036	is
C00170 00037	toα
C00171 00038	useα
C00172 00039	XGPSYNα
C00173 00040	toα
C00174 00041	viewα
C00175 00042	aα
C00176 00043	documentα
C00177 00044	onα
C00178 00045	theα
C00179 00046	videoα
C00180 00047	synthesizerα
C00181 00048	beforeα
C00182 00049	makingα
C00183 00050	hardcopyαonαthe
C00184 00051	intractableα
C00185 00052	bugα
C00186 00053	--α
C00187 00054	thisα
C00188 00055	bugα
C00189 00056	andα
C00190 00057	someα
C00191 00058	othersα
C00192 00059	recentlyα
C00193 00060	fixedα
C00194 00061	areα
C00195 00062	listedα
C00196 00063	inα
C00197 00064	a
C00198 00065	findα
C00199 00066	thatα
C00200 00067	areα
C00201 00068	notα
C00202 00069	inα
C00203 00070	thatα
C00204 00071	list,α
C00205 00072	orαwhichαareαlistedαasα"fixed".αErrorsαinαthisαwriteupαshouldαalsoαbe
C00206 00073	takesα
C00207 00074	aα
C00208 00075	fileα
C00209 00076	asα
C00210 00077	inputα
C00211 00078	andα
C00212 00079	producesα
C00213 00080	anα
C00214 00081	outputα
C00215 00082	fileα
C00216 00083	thatα
C00217 00084	isα
C00218 00085	suitableα
C00219 00086	forα
C00220 00087	spoolingα
C00221 00088	withα
C00222 00089	theα
C00223 00090	XGP
C00224 00091	inputα
C00225 00092	fileα
C00226 00093	containsα
C00227 00094	instructionsα
C00228 00095	toα
C00229 00096	POXα
C00230 00097	andα
C00231 00098	theα
C00232 00099	textα
C00233 00100	ofα
C00234 00101	theα
C00235 00102	document.
C00236 00103	the
C00237 00104	characterα
C00238 00105	canα
C00239 00106	beα
C00240 00107	arbitrary,α
C00241 00108	butα
C00242 00109	reasonα
C00243 00110	dictatesα
C00244 00111	thatα
C00245 00112	itα
C00246 00113	shouldα
C00247 00114	beα
C00248 00115	some
C00249 00116	α∞1
C00250 00117	reallyα
C00251 00118	wantα
C00252 00119	toα
C00253 00120	knowα
C00254 00121	howα
C00255 00122	Iα
C00256 00123	generatedα
C00257 00124	itα
C00258 00125	inα
C00259 00126	thisα
C00260 00127	writeup)α
C00261 00128	representsα
C00262 00129	your
C00264 00130	∪¬βfromα⊂POXα⊂andα⊂PUB,α⊂exceptα⊂whenα⊂POXα⊂isα⊂usedα⊂asα⊂post-processorα∂forα∂someα∂otherα∂program,α∂suchα∂as
C00265 00131	1¬βXLITER.αForαthisαandαsimilarαuse,αPOXαcanαacceptαcertainαsystemαXGPαescapeαsequencesαatαsomeα
C00266 00132	O¬βinα
C00267 00133	theαinputαfile.¬¬αWhatαPOXαdoesαisαtoαconvertαtheseαescapeαsequencesαintoαtheαequivalentαbrickαcommandαuponαinput,αthenαto
C00268 00134	q¬¬processα∞theα∞brickα
C00269 00135	α	1¬∂F¬¬α	commands,α	andα	processα	otherα	brickα	commandsαλthatαλwereαλinαλtheαλoriginalαλtextαλfileαλ(that
C00270 00136	youα
C00271 00137	wantα
C00272 00138	toα
C00273 00139	useα
C00274 00140	theα
C00275 00141	latest
C00276 00142	FILE>¬β.α_Ifα
C00277 00143	the¬¬α
C00278 00144	<OUTPUTα
C00279 00145	FILE>¬βα
C00280 00146	termα
C00281 00147	isα
C00282 00148	omittedα
C00283 00149	(theα
C00284 00150	arrowα
C00285 00151	isα
C00286 00152	thenα
C00287 00153	optional)α
C00288 00154	thenα
C00289 00155	theα
C00290 00156	outputα
C00291 00157	file
C00292 00158	"¬∂.POX¬β"α
C00293 00159	isα
C00294 00160	assumed,α
C00295 00161	andα
C00296 00162	ifα
C00297 00163	thatα
C00298 00164	fileα
C00299 00165	isn'tα
C00300 00166	foundα
C00301 00167	thenα
C00302 00168	nullα
C00303 00169	extensionα
C00304 00170	isα
C00305 00171	tried.α_Ifα
C00306 00172	theαextensionαis
C00307 00173	isα
C00308 00174	retained,α
C00309 00175	onlyα
C00310 00176	theα
C00311 00177	nullα
C00312 00178	extensionα
C00313 00179	isα
C00314 00180	tried.α_--α
C00315 00181	Alternately,α
C00316 00182	insteadα
C00317 00183	ofα
C00318 00184	doing¬∂α
C00319 00185	R
C00320 00186	↓ 	∃¬α 2↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C00321 00187	theαsystemαcommand¬∂αPOX¬βαmayαbeαfollowedαbyαthe¬¬α<OUTPUTαFILE>¬∂←¬¬<INPUTαFILE>¬βαsyntaxαallαonαoneαline.
C00322 00188	Laterα
C00323 00189	ifα
C00324 00190	youα
C00325 00191	haven'tα
C00326 00192	loggedαoutαandαhaveαtheαsameαalias,αyouαcanαmakeαPOXαuseαtheαsameαcommand,
C00327 00193	allα
C00328 00194	isα
C00329 00195	wellα
C00330 00196	withα
C00331 00197	theα
C00332 00198	inputα
C00333 00199	file,α
C00334 00200	POXα
C00335 00201	willα
C00336 00202	runα
C00337 00203	andα
C00338 00204	produceα
C00339 00205	anα
C00340 00206	outputα
C00341 00207	fileα
C00342 00208	suitableα
C00343 00209	for¬∂αXSPOOL¬βing.
C00346 00210	β	f¬¬<END OF FILE>
C00347 00211	thisα
C00348 00212	writeupα
C00349 00213	thatα
C00350 00214	describesα
C00351 00215	brick-commandsα
C00352 00216	consistsα
C00353 00217	ofα
C00354 00218	theα
C00355 00219	following:α_Summary
C00356 00220	∞¬βappropriateα
C00357 00221	"getα
C00358 00222	outα
C00359 00223	ofα
C00360 00224	thisα
C00361 00225	mode"α
C00362 00226	characterα
C00363 00227	orα
C00364 00228	brick-commandα
C00365 00229	isα
C00366 00230	seen,α
C00367 00231	atα
C00368 00232	whichα
C00369 00233	timeαitαwillαreturnαto
C00370 00234	,¬βitsαpreviousαmode.αInitiallyα(afterαeatingαtheαdirectoryαpageαandαtheαfirstαcharacterαorαtwoαofα
C00371 00235	J¬βfile)α
C00372 00236	commandα
C00373 00237	scannerα
C00374 00238	isα
C00375 00239	inα
C00376 00240	"PASS-AS-IS"α
C00377 00241	modeα
C00378 00242	whichα
C00379 00243	meansα
C00380 00244	thatα
C00381 00245	carriage-returnα
C00382 00246	putsα
C00383 00247	youα
C00384 00248	atα
C00385 00249	the
C00386 00250	h¬βleftα∞margin,α∞linefeedα∞movesα∞downα∞toα∞theα∞nextα∞line,α∞formfeedα
C00387 00251	charactersα
C00388 00252	areα
C00389 00253	copiedα
C00390 00254	toα
C00391 00255	theα
C00392 00256	outputα
C00393 00257	fileα
C00394 00258	inα
C00395 00259	the
C00396 00260	font.α_Theα
C00397 00261	effectα
C00398 00262	isα
C00399 00263	thatα
C00400 00264	textα
C00401 00265	isα
C00402 00266	alignedα
C00403 00267	againstα
C00404 00268	theα
C00405 00269	leftα
C00406 00270	marginαunlessαyouαexplicitly
C00407 00271	ignoreα
C00408 00272	nonprintingα
C00409 00273	charactersα
C00410 00274	untilα
C00411 00275	semicolon,α
C00412 00276	andα
C00413 00277	parseα
C00414 00278	a
C00415 00279	isα
C00416 00280	scanned.α_Theα
C00417 00281	completeα
C00418 00282	listα
C00419 00283	isα
C00420 00284	(Uα
C00421 00285	Jα
C00422 00286	CRα
C00423 00287	oα
C00424 00288	A)α
C00425 00289	whichα
C00426 00290	referα
C00427 00291	toα
C00428 00292	Unjustifiedα
C00429 00293	(normalα
C00430 00294	pass-as-is),
C00431 00295	1¬∂o¬βα∂command)α∂andα∂Argumentα∂toα∂aα∂macroα∂orα∂textα∂toα∂an
C00432 00296	otherα
C00433 00297	modes,α
C00434 00298	namelyα
C00435 00299	defineα
C00436 00300	theα
C00437 00301	bodyα
C00438 00302	ofα
C00439 00303	aα
C00440 00304	macro,α
C00441 00305	andα
C00442 00306	parse
C00443 00307	↓ 	∃¬α 3↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C00444 00308	likeα
C00445 00309	whatα
C00446 00310	theα
C00447 00311	userα
C00448 00312	wouldα
C00449 00313	seeα
C00450 00314	whenα
C00451 00315	editingα
C00452 00316	hisα
C00453 00317	sourceαdocument.α(E.g.,αinαexamplesαofαhowαto
C00454 00318	things,α
C00455 00319	andαinαtheαsyntaxαdescriptionsαwhereαaαparticularαcharacterαoccursαasαpartαofαtheαcommand.)
C00456 00320
C00457 00321	however,α
C00458 00322	don'tα
C00459 00323	lookα
C00460 00324	theα
C00461 00325	sameα
C00462 00326	onα
C00463 00327	ourα
C00464 00328	variousα
C00465 00329	devices,α
C00466 00330	andα
C00467 00331	usuallyα
C00468 00332	represent
C00469 00333	¬¬↓ βN<FF>¬β↓ ¬Tform (feed)
C00471 00334	quotingα
C00472 00335	character,
C00473 00336	--α
C00474 00337	anyα
C00475 00338	stringα
C00476 00339	ofα
C00477 00340	textα
C00478 00341	notα
C00479 00342	containingα
C00480 00343	theα
C00481 00344	quotingα
C00482 00345	character,αorαcontainingαproperly-nested
C00484 00346	asα
C00485 00347	fullα
C00486 00348	ofα
C00487 00349	textα
C00488 00350	asα
C00489 00351	willα
C00490 00352	fitα
C00491 00353	andα
C00492 00354	extraα
C00493 00355	partial-spacesα
C00494 00356	areα
C00495 00357	insertedα
C00496 00358	between
C00497 00359	aligned
C00498 00360	∞¬βpass-as-isα
C00499 00361	andα
C00500 00362	rightifyα
C00501 00363	exceptα
C00502 00364	eachα
C00503 00365	lineα
C00504 00366	isαcentered),αandαtoαignoreαportionsαofαtheαinputαtextαthatαyou
C00505 00367	,¬βdoα
C00506 00368	h¬βFONT SELECTION
C00507 00369	1¬∂M¬¬<N><FONT>¬∂¬β↓ β"(U)α⊂--α⊂causesα⊂theα⊂fontα⊂toα⊂beα⊂loadedα⊂intoα⊂poxα∂(andα∂laterα∂intoα∂theα∂systemα∂XGP
C00508 00370	andα
C00509 00371	selectsα
C00510 00372	itα
C00511 00373	nowα--αseeαnoteα5αandαbugα2α--αthisαisαtheαcommandαthat
C00512 00374	oneα
C00513 00375	moreα
C00514 00376	fontα
C00515 00377	thanα
C00516 00378	youα
C00517 00379	are
C00518 00380	1¬∂F¬¬<N>¬β↓ β"(Uα
C00519 00381	Jα
C00520 00382	CRα
C00521 00383	o)α
C00522 00384	--α
C00523 00385	selectsα
C00524 00386	aα
C00525 00387	fontα
C00526 00388	whichα
C00527 00389	hasα
C00528 00390	alreadyα
C00529 00391	beenα
C00530 00392	loadedα
C00531 00393	--α
C00532 00394	allα
C00533 00395	textα
C00534 00396	afterα
C00535 00397	this
C00536 00398	α
C00537 00399	α
C00538 00400	1¬∂f¬¬<N>¬β↓ β"(UαJαCR)α--αselectsαaαfontαforαjustα
C00539 00401	↓ 	∃¬α 4↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C00540 00402	andα
C00541 00403	quotingα
C00542 00404	theα
C00543 00405	firstαcharacterαofαgeneratedαtextαinαtheαtemporaryαfont
C00544 00406	1¬∂¬β (vert. tab)↓ β"(Uα
C00545 00407	toα
C00546 00408	be
C00547 00409	fileα
C00548 00410	exceptα
C00549 00411	inα
C00550 00412	theα
C00551 00413	middleα
C00552 00414	ofα
C00553 00415	macro-body-definitionsα
C00554 00416	andα
C00555 00417	inα
C00556 00418	theα
C00557 00419	middle
C00558 00420	1¬∂N¬β↓ β"(Uα
C00559 00421	Jα
C00560 00422	CRα
C00561 00423	oα
C00562 00424	A)α
C00563 00425	--α
C00564 00426	sameα
C00565 00427	as¬
C00566 00428	α
C00567 00429	1¬∂¬βα
C00568 00430	forα
C00569 00431	peopleα
C00570 00432	whoα
C00571 00433	don'tα
C00572 00434	likeα
C00573 00435	verticalα
C00574 00436	tabsα
C00575 00437	inα
C00576 00438	theirαtext
C00577 00439	printα
C00578 00440	outα
C00579 00441	as¬¬α
C00580 00442	<LF><LF><LF><LF>¬βα
C00581 00443	onα
C00582 00444	TTY's,α
C00583 00445	dial-upα
C00584 00446	linesα
C00585 00447	andα
C00586 00448	theα
C00587 00449	LPT,α
C00588 00450	as
C00589 00451	1¬∂,¬β (comma)↓ β"(UαJαCRα
C00590 00452	α
C00591 00453	1¬∂ ¬β (space)↓ β"(Uα∂Jα∞CRα∞oα∞A)α∞--α∞withoutα∞changingα∞mode,α∞ignoreα∞allα∞inputα∞textα∞(onlyα∞spacesα∞and
C00592 00454	withoutα
C00593 00455	generatingαspacesαorαtabsαinαtheαoutput.α(Proposedαadditional
C00594 00456	1¬β↓ αH (tab)↓ β"(Uα
C00595 00457	α
C00596 00458	1¬∂J¬β↓ β"(U)α
C00597 00459	--αbeginsαfull-justifyαmode,αseeαtableαbelowαforαdetailsαonαthisαmodeαandαhow
C00598 00460	the
C00599 00461	1¬∂J¬
C00600 00462	1¬∂F1¬¬<TB>¬∂Thisα
C00601 00463	1¶.
C00602 00464	1¬∂F1¬
C00603 00465	1¬∂J¬¬<TB>¬∂Thisα
C00604 00466	1¶.
C00605 00467	1¬∂R¬β↓ β"(U)α⊃--α⊃beginsα⊃single-lineα⊂align-against-right-marginα⊂mode,α⊂seeα⊂tableα⊂belowα⊂for
C00606 00468	
C00607 00469	¬
C00608 00470	1¬∂C¬β↓ β"(U)α--αbeginsαsingle-lineαcenter-the-lineαmode,αseeαtableαbelowα
C00609 00471	,¬βmodeα
C00610 00472	h¬βEXIT SPECIAL-FORMATTING MODES, ETC. (SEE TABLE)
C00611 00473	1¬∂.¬β (period)
C00612 00474	1¬∂¬β (semicolon)↓ β"Theseαtwoαcommandsαwillα
C00613 00475	thingsα
C00614 00476	likeα
C00615 00477	ignoringα
C00616 00478	textα
C00617 00479	andα
C00618 00480	suppressingα
C00619 00481	<CR><LF>α
C00620 00482	--α
C00621 00483	seeα
C00622 00484	tableα
C00623 00485	belowαfor
C00624 00486	|xα∧∞_α"xα↓ α,β∞~¬
C00625 00487	1¬∂.¬
C00626 00488	↓ ¬n1¬∂¬¬↓ λ.<CR><LF>↓  <TB>¬β or ¬¬<SP>
C00627 00489	T∧∞6(Zα↓ 2β∞8¬βPass-as-is↓ α,(not supported)↓ ¬ndo ¬
C00628 00490	1¬∂N¬β, #4¬¬↓ λ.<CR><LF>¬β, #4↓  copy to output
C00629 00491	1¬∂N¬β↓ ¬nillegal↓ λ.(see #1)↓  (see #2)
C00630 00492	1¬∂N¬β, pass-as-is↓ λ.finish, ¬¬<CR><LF>¬β, pass-as-is↓  (see #3)
C00631 00493	T↓ ↓Hβ∂0¬βfinishα
C00632 00494	--α
C00633 00495	Getα
C00634 00496	outα
C00635 00497	ofα
C00636 00498	specialα
C00637 00499	modeα(don'tαemit¬¬α<CR><LF>¬βαyet).αToαprotectαusersαwhoαputαtextαafter¬
C00638 00500	α1¬∂.¬βαat
C00639 00501	↓ 	∃¬α 5↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C00640 00502	α
C00641 00503	α
C00642 00504	1¬∂N¬βα
C00643 00505	commandα
C00644 00506	andα
C00645 00507	no¬¬α
C00646 00508	<CR><LF>¬βα
C00647 00509	inserted,α
C00648 00510	soα
C00649 00511	thatα
C00650 00512	anyα
C00651 00513	followingα
C00652 00514	textα
C00653 00515	onα
C00654 00516	theα
C00655 00517	sameα
C00656 00518	inputα
C00657 00519	lineα
C00658 00520	willα
C00659 00521	occurα
C00660 00522	on
C00661 00523	α
C00662 00524	(if
C00664 00525	ofα
C00665 00526	ignoringα
C00666 00527	tabsα
C00667 00528	andα
C00668 00529	spacesα
C00669 00530	atα
C00670 00531	theα
C00671 00532	endα
C00672 00533	isα
C00673 00534	currentlyα
C00674 00535	underα
C00675 00536	considerationα
C00676 00537	soα
C00677 00538	don'tα
C00678 00539	relyα
C00679 00540	on
C00680 00541	--α
C00681 00542	Afterα
C00682 00543	performingα
C00683 00544	theα
C00684 00545	indicatedαoperation,αifαtheαEVERYPAGEαfeatureαhasαbeenαrequestedαforαthis
C00685 00546	ofα
C00686 00547	theα
C00687 00548	macroα
C00688 00549	EVERYPAGEα
C00689 00550	isα
C00690 00551	patchedα
C00691 00552	intoαtheαinputαstreamαatαthisαpoint.αThis,αofαcourse,αisαlikely
C00692 00553	1¬∂|¬¬<CH>¬β↓ β"(Uα
C00693 00554	Jα
C00694 00555	CRα
C00695 00556	oα
C00696 00557	A)α
C00697 00558	--α
C00698 00559	changesα
C00699 00560	theα
C00700 00561	brickαcharacterαto¬¬α<CH>¬βα--αIαdon'tαguaranteeαparsing
C00701 00562	likeα
C00702 00563	justify,α
C00703 00564	surroundedα
C00704 00565	nearbyαbyαthingsαthatαdependαonαtheαescape
C00705 00566	α∞1¬∂||¬βα∞youα∞can'tα∞later
C00706 00567	11¬β"α∀ratherα∀thanα∀asα∪"¬
C00707 00568	1¬∂|¬β..."α∪(seeα∪the¬
C00708 00569	α∪11¬βα∪and¬
C00709 00570	α∪1¬∂"¬¬<CH>¬βα∪commands
C00710 00571	α⊃11
C00711 00572	α
C00712 00573	thatα
C00713 00574	NGR30α
C00714 00575	isαnotαreallyαloadedαtwiceαbecauseαwhenαPOXαseesαthe¬∂α$M1¬β...αcommandαitαnoticesαthat
C00715 00576	⊂¬∂\M0FIX25\M1NGB25[1,REM]\M2POXNGR[CSP,DOC]\M3BDI25
C00716 00577	.¶\M9GRK30\MEGRKL50\MFPOXBRK.FNT[CSP,DOC]
C00717 00578	L¬βOnlyαtheαfontsα
C00718 00579	j¬βnumbersα
C00719 00580	α
C00720 00581	1¬∂.¬βα
C00721 00582	exitα
C00722 00583	justifyα
C00723 00584	mode.α_(Seeα
C00724 00585	theα
C00725 00586	sectionα
C00726 00587	onα
C00727 00588	REGISTERSα
C00728 00589	forα
C00729 00590	howα
C00730 00591	indentedα
C00731 00592	paragraphsα
C00732 00593	ofα
C00733 00594	descriptions
C00734 00595	eachα
C00735 00596	commandα
C00736 00597	syntaxα
C00737 00598	wasα
C00738 00599	doneα
C00739 00600	byα
C00740 00601	the¬
C00741 00602	α
C00742 00603	1¬∂j¬βα
C00743 00604	command.)α_Theα
C00744 00605	titleα
C00745 00606	onα
C00746 00607	theαfirstαpageαisαinαcenterify
C00747 00608	using¬
C00748 00609	α
C00749 00610	1¬∂C¬βα
C00750 00611	toα
C00751 00612	enterα
C00752 00613	and¬¬α
C00753 00614	<CR><LF>¬βα
C00754 00615	toα
C00755 00616	exit.α_(Theαtitlesαonαotherαpagesαareαdoneαbyαoverlays,αwhich
C00756 00617	↓ 	∃¬α 6↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C00758 00618	¬β, do the trick.
C00759 00619	"linefeedα
C00760 00620	simulator"α
C00761 00621	isα
C00762 00622	aα
C00763 00623	post-processorα
C00764 00624	forα
C00765 00625	allα
C00766 00626	textα
C00767 00627	emittedα
C00768 00628	byα
C00769 00629	theα
C00770 00630	ordinaryαmodeαscanners
C00771 00631	α
C00772 00632	enabling
C00774 00633	requiresα
C00775 00634	this),α
C00776 00635	toα
C00777 00636	knowα
C00778 00637	whenα
C00779 00638	bottomα
C00780 00639	ofα
C00781 00640	pageα
C00782 00641	isα
C00783 00642	reachedα
C00784 00643	andα
C00785 00644	aα
C00786 00645	newαpageαisαstartedα(soαthatαPOX
C00787 00646	keepα
C00788 00647	trackαofαpageαnumbersαcorrectly,αorαwarnαtheαuserαifαaαpageαbecomesαfullαunexpectedly),αand
C00789 00648	i.e.,α
C00790 00649	toα
C00791 00650	eliminateα
C00792 00651	allα
C00793 00652	redundantα
C00794 00653	operations,α
C00795 00654	andα
C00796 00655	toα
C00797 00656	implementα
C00798 00657	giant-baseline-offset,αi.e.,
C00799 00658	a¬
C00800 00659	α
C00801 00660	1¬∂↑¬βα
C00802 00661	or¬
C00803 00662	α
C00804 00663	1¬∂↓¬βα
C00805 00664	or¬
C00806 00665	α
C00807 00666	1¬∂→,¬βα
C00808 00667	commandα
C00809 00668	isα
C00810 00669	givenα
C00811 00670	withα
C00812 00671	anα
C00813 00672	argumentα
C00814 00673	outαofαtheαrangeαofα-100αtoα+77α(octal)
C00815 00674	relative-baseline-offsetsα
C00816 00675	toα
C00817 00676	accomplishα
C00818 00677	theα
C00819 00678	desired
C00820 00679	α
C00821 00680	--α
C00822 00681	allα
C00823 00682	locationsα
C00824 00683	onα
C00825 00684	the
C00826 00685	∧¬βTheα∞ideaα∞isα∞toα∞allowα∞specificationα∞ofα
C00827 00686	"¬βandα
C00828 00687	@¬βandα⊂toα∂performα∂anyα∂otherα∂integerα∂arithmeticα∂orα∂logicα∂thatα∂mightα∂beα∂usefulα∂duringα∂compilationsα∂ofα∂a
C00829 00688	↑¬βdocument.α≡Eachα∂registerα∂isα∞specifiedα∞byα∞anα∞ASCIIα∞character.α≤(¬αNote¬βα∞--α∞inα∞general,α∞POXα∞distinguishes
C00830 00689	|¬βbetweenα⊂upper-α⊂andα⊂lower-caseα⊂charactersα⊂--α⊂forα⊂example,α⊂"¬∂k¬β"α⊂andα⊂"¬∂K¬β"α⊂doα⊂notα∂referα∂toα∂theα∂same
C00831 00690	--α
C00832 00691	non-alphanumeric
C00834 00692	↓ 	∃¬α 7↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C00835 00693	usedα
C00836 00694	upα
C00837 00695	byα
C00838 00696	theα
C00839 00697	character,α
C00840 00698	andα
C00841 00699	ifα
C00842 00700	youα
C00843 00701	writeα
C00844 00702	in
C00845 00703	generatedα
C00846 00704	inα
C00847 00705	yourα
C00848 00706	outputα
C00849 00707	fileα
C00850 00708	toα
C00851 00709	reallyα
C00852 00710	put
C00853 00711	identifierα
C00854 00712	isα
C00855 00713	inαtheαleftαhalfαofαtheαregisterαtoαallowαcheckingαforαillegal
C00856 00714	selects.α_(CR)α
C00857 00715	Inα
C00858 00716	centerify/rightifyα
C00859 00717	mode,α
C00860 00718	itα
C00861 00719	isα
C00862 00720	relativeαtoαtheαbeginningαof
C00863 00721	leftα
C00864 00722	halfα
C00865 00723	asα
C00866 00724	ifα
C00867 00725	theα
C00868 00726	textα
C00869 00727	were
C00870 00728	macros,α
C00871 00729	itα
C00872 00730	isα
C00873 00731	notα
C00874 00732	implementedα
C00875 00733	althoughα
C00876 00734	youα
C00877 00735	areα
C00878 00736	not
C00879 00737	α
C00880 00738	1¬∂→,¬βα
C00881 00739	α
C00882 00740	α
C00883 00741	α
C00884 00742	α
C00885 00743	afterα
C00886 00744	the¬
C00887 00745	α
C00888 00746	1¬∂↑¬βα
C00889 00747	and¬
C00890 00748	α
C00891 00749	1¬∂↓¬βα
C00892 00750	commands,α
C00893 00751	for
C00894 00752	onα
C00895 00753	a
C00896 00754	α
C00897 00755	marginα
C00898 00756	isαstoredαinαthisαregisterα(¬¬<CR>¬βαcausesαcolumnαselectαhereα--αseeαalso
C00899 00757	1¬∂J¬
C00900 00758	α
C00901 00759	α
C00902 00760	α
C00903 00761	α
C00904 00762	1¬∂T¬β, ¬
C00905 00763	1¬∂t¬β, ¬
C00906 00764	1¬∂B¬β, and ¬
C00907 00765	1¬∂b¬β commands.)
C00908 00766	α
C00909 00767	α∪1¬∂⊂
C00910 00768	restrictionα
C00911 00769	willα
C00912 00770	beα
C00913 00771	indicatedα
C00914 00772	by
C00915 00773	∞¬βwillα
C00916 00774	beα
C00917 00775	denotedα
C00918 00776	byα
C00919 00777	variousα
C00920 00778	alphabeticα
C00921 00779	charactersα
C00922 00780	inα
C00923 00781	aα
C00924 00782	specialαfont,αtoαdistinguishαthemαfromαcharacters
C00925 00783	,¬βthatα
C00926 00784	youα
C00927 00785	areα
C00928 00786	supposedα
C00929 00787	toα
C00930 00788	actuallyα
C00931 00789	typeα
C00932 00790	(whichα
C00933 00791	areα
C00934 00792	inα
C00935 00793	aα
C00936 00794	keyboard-styleα
C00937 00795	fontα
C00938 00796	asα
C00939 00797	describedα
C00940 00798	earlier),αand
C00941 00799	J¬βBNF-styleαsyntacticalαentitiesα(whichαareαinαyetαanotherαfontαasαalsoαshownαearlier).α∀Hereα
C00942 00800	h¬βalphabeticsα
C00943 00801	}¬εabcdefghijklmnopqrstuvwxyz
C00944 00802	1¬∂←¬εq¬β↓ ββ(Uα
C00945 00803	1¬∂→¬εq¬β↓ ββ(Uα⊂Jα⊂CRα⊂oα⊂A)α⊂--α∂storeα∂contentsα∂ofα∂acα∂into¬εα∂q¬β,α∂READONLYα∂operandsα∂not
C00946 00804	¬
C00947 00805	1¬∂+¬εq¬β  ¬
C00948 00806	1¬∂-¬εq
C00949 00807	1¬∂*¬εq¬β  ¬
C00950 00808	1¬∂/¬εq¬β↓ ββ(Uα⊃Jα⊃CRα⊃oα⊃A)α⊃--α⊃usualα⊃arithmeticα⊃--α⊂acα⊂plus/minus/times/dividedby¬εα⊂q¬β,
C00951 00809	↓ 	∃¬α 8↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C00952 00810	1¬∂%¬εq¬β↓ ββ(UαJαCRαoαA)α--α"modulo"α--αacαdividedαby¬εαq¬β,αremainderαinαac.α∀Ifα
C00953 00811	1¬∂¬¬εq¬β  ¬
C00954 00812	1¬∂\¬εq¬β↓ ββ(Uα
C00955 00813	1¬∂¬'-1¬¬ will logically complement the ac.]
C00956 00814	1¬∂∧¬εq¬β  ¬
C00957 00815	1¬∂∨¬εq¬β↓ ββ(Uα
C00958 00816	1¬∂L¬εq¬β↓ ββ(Uα
C00959 00817	Jα
C00960 00818	CRα
C00961 00819	oα
C00962 00820	A)α
C00963 00821	--α
C00964 00822	logicalα
C00965 00823	shiftα
C00966 00824	ofα
C00967 00825	acα
C00968 00826	leftα
C00969 00827	by¬εα
C00970 00828	q¬βαbitsα(if¬εαq¬β<0αthenαshiftαright),
C00971 00829	1¬∂~¬εq¬β↓ ββ(Uα
C00972 00830	1¬∂_¬εq¬β↓ ββ(Uα
C00973 00831	1¬∂↑¬εq¬β↓ ββ(Uα
C00974 00832	1¬∂↓¬εq¬β↓ ββ(Uα
C00975 00833	onα
C00976 00834	thereα
C00977 00835	isα
C00978 00836	noα
C00979 00837	limitα
C00980 00838	imposedα
C00981 00839	byα
C00982 00840	POXα
C00983 00841	orα
C00984 00842	XGPSERα
C00985 00843	asα
C00986 00844	toα
C00987 00845	howα
C00988 00846	largeα
C00989 00847	(positiveα
C00990 00848	or
C00991 00849	won'tα
C00992 00850	work,α
C00993 00851	especiallyα
C00994 00852	ifα
C00995 00853	theα
C00996 00854	systemα
C00997 00855	isα
C00998 00856	loaded.α_Withoutα
C00999 00857	theα
C01000 00858	simulator,
C01001 00859	α⊂1¬∂↑¬βα⊂commandα⊂andα⊂theα⊂negativeα⊂ofα⊂the
C01002 00860	α
C01003 00861	1¬∂∩¬β↓ ββ(Uα
C01004 00862	α
C01005 00863	1¬∂∪¬β↓ ββ(Uα
C01006 00864	defaultα
C01007 00865	subscriptα
C01008 00866	locationα
C01009 00867	(halfα
C01010 00868	theα
C01011 00869	totalα
C01012 00870	heightα
C01013 00871	of
C01014 00872	currentαfont),αeasierαthanαstoringαaαnegativeαnumberαinαregisterα","αor
C01015 00873	α
C01016 00874	1¬∂¬β↓ ββ(UαJαCRαo)α--αbackαtoαnormalαbaselineαfromα
C01017 00875	α
C01018 00876	α
C01019 00877	α
C01020 00878	1¬∂→,¬βα
C01021 00879	α
C01022 00880	aα
C01023 00881	rangeα
C01024 00882	ofα
C01025 00883	-100α
C01026 00884	toα
C01027 00885	+77α
C01028 00886	(octal).αTheαuserαwhoαwantsαfractionαbarsαetc.αoutsideαofαthatαrangeαhasαat
C01029 00887	thatα
C01030 00888	POXα
C01031 00889	couldα
C01032 00890	convertα
C01033 00891	underlinesα
C01034 00892	intoα
C01035 00893	vectors,α
C01036 00894	placedα
C01037 00895	appropriatelyα
C01038 00896	onα
C01039 00897	theα
C01040 00898	pageα
C01041 00899	toα
C01042 00900	have
C01043 00901	1¬∂U¬εlatr¬β↓ ββ(Uα⊃Jα⊃CRα⊃o)α⊃--α⊃underlineα⊃fromα⊃column¬εα⊃l¬βα⊃toα⊃column¬εα⊃r¬β,α⊃onα⊃scanα⊃line¬εα⊂a
C01044 00902	∞¬βcommandα∩intoα∩oneα∩XGPα∩underscoreα⊃perα⊃scanα⊃line,α⊃withα⊃column-selects
C01045 00903	,¬βbetweenα
C01046 00904	H¬
C01047 00905	1¬∂{¬β↓ ββ(Uα
C01048 00906	`¬
C01049 00907	1¬∂}¬εat¬β↓ ββ(Uα
C01050 00908	--α
C01051 00909	inα
C01052 00910	conjunctionα
C01053 00911	with¬
C01054 00912	α
C01055 00913	1¬∂{¬β,α
C01056 00914	endα
C01057 00915	underline,α
C01058 00916	onα
C01059 00917	scanα
C01060 00918	line¬εα
C01061 00919	a¬βα
C01062 00920	with
C01063 00921	}¬βthickness¬εα
C01064 00922	α1¬∂{¬βαand¬
C01065 00923	α1¬∂}¬εat¬βαcommandsαareαnoαlongerαrecommended,αbecauseαinαjustifyαmodeαifαaαline
C01066 00924	α
C01067 00925	α
C01068 00926	1¬∂[¬εat¬β↓ ββ(UαJαCRαo)α--αstartαunderline,α
C01069 00927	1¬∂]¬β↓ ββ(Uα
C01070 00928	Jα
C01071 00929	CRα
C01072 00930	o)α
C01073 00931	--α
C01074 00932	endαunderlineαusingαparametersαspecifiedαinαtheαpreceeding
C01075 00933	1¬∂[¬εat¬βα
C01076 00934	↓ 	∃¬α 9↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01077 00935	1¬∂j¬β ¬
C01078 00936	1¬∂r¬β or ¬
C01079 00937	1¬∂c¬β↓ ββ(U)α--αsameαas¬
C01080 00938	α1¬∂J¬
C01081 00939	α1¬∂R¬βαor¬
C01082 00940	α1¬∂C¬βα(respectively)αexceptαtheyαsetα
C01083 00941	fromα
C01084 00942	registers¬∂α
C01085 00943	l¬βα
C01086 00944	and¬∂α
C01087 00945	r¬β,α
C01088 00946	thenα
C01089 00947	restore¬∂α
C01090 00948	L¬βα
C01091 00949	and¬∂α
C01092 00950	R¬βα
C01093 00951	toα
C01094 00952	theirαoldαvalues
C01095 00953	α⊃1¬∂r¬βα⊃or¬
C01096 00954	α⊃1¬∂c¬β,α⊃willα⊃setα⊃theα⊃page
C01097 00955	1¬∂'¬¬<OCTAL DIGITS>¬∂¬β  ↓ βS(U)α--α
C01098 00956	cause
C01099 00957	happensα
C01100 00958	toαbeαnextαinαtheαoutputαfile.αTheαresultαisαthatαifαyou
C01101 00959	occur.α_Theα
C01102 00960	only
C01103 00961	α∞1¬∂'3↓↓¬βα∞(insteadα∞ofα
C01104 00962	1¬∂←'201¬
C01105 00963	1¬∂Y¬β)α∀willα∀continueα∀toα∀workα∀asα∀theyα∀alwaysα∀did.α'(Note,α∪the
C01106 00964	α⊂1¬∂⊂'1000¬βα⊂or¬
C01107 00965	α⊂1¬∂⊂'2000
C01108 00966	α⊃1¬∂A'¬¬<OCTAL
C01109 00967	1¬∂"¬¬<CH>¬β↓ ββ(Uα
C01110 00968	<CH>¬β.α_Inα
C01111 00969	modesα
C01112 00970	(Uα
C01113 00971	Jα
C01114 00972	CR)α
C01115 00973	this
C01116 00974	isα
C01117 00975	alsoα
C01118 00976	suppressedαasαfarαasαtheαjustificationαalgorithmαis
C01119 00977	theα
C01120 00978	current¬
C01121 00979	α
C01122 00980	1¬βαcharacterαisαquoted,αitαwillαgoαthroughαasαa
C01123 00981	insteadα
C01124 00982	ofα
C01125 00983	causingα
C01126 00984	aα
C01127 00985	brickα
C01128 00986	commandα
C01129 00987	toα
C01130 00988	begin.α_Onlyα
C01131 00989	ruboutαand
C01132 00990	α
C01133 00991	11¬β↓ ββ(Uα∩Jα∩CRα∩A)α∩[noα∩longerα∩recommended,α∩use¬
C01134 00992	α∩1¬∂"¬
C01135 00993	1¬βα⊃insteadα⊃(seeα⊃previous
C01136 00994	--α
C01137 00995	quotesα
C01138 00996	theα
C01139 00997	escapeαcharacterα--αtakesαprecedenceαoverαany
C01140 00998	1¬∂⊂'1000001¬βα∂whichα∂disablesα∂thisα∂cruftyα∂oldα∂undesirableα∂andα∞unneeded
C01141 00999	∞¬βfeature,α
C01142 01000	$¬
C01143 01001	1¬∂A¬εq¬β↓ ββ(Uα
C01144 01002	bitsα
C01145 01003	of¬εα
C01146 01004	q¬βα
C01147 01005	areα
C01148 01006	assembledα
C01149 01007	intoα
C01150 01008	anα
C01151 01009	ASCII
C01152 01010	H¬βcharacter,α∂and¬
C01153 01011	α∂1¬∂"¬βα∂isα∂performedα∂onα∂thatα∂character.α≡Note,α∂althoughα∂this
C01154 01012	h¬βcommandαisαnotαyetα∃implementedα∃insideα∃justifyα∃orα∃centerify/rightify
C01155 01013	ifα
C01156 01014	youα
C01157 01015	justαwantαtoαgenerateαaαfunnyαcharacterαyouαdon'tαhaveαon
C01158 01016	terminal,α
C01159 01017	suchα
C01160 01018	asα
C01161 01019	curlyα
C01162 01020	brace,α
C01163 01021	theα
C01164 01022	followingα
C01165 01023	trickαmayαbeαused:αCall
C01166 01024	α
C01167 01025	asα
C01168 01026	argument,α
C01169 01027	forα
C01170 01028	example¬∂α
C01171 01029	\!EVAL(\A'176)¬β,α
C01172 01030	which
C01173 01031	inα
C01174 01032	allα
C01175 01033	modes.α_Ofα
C01176 01034	course,α
C01177 01035	thisα
C01178 01036	willα
C01179 01037	notα
C01180 01038	haveα
C01181 01039	theα
C01182 01040	rightα
C01183 01041	effectα
C01184 01042	ifα
C01185 01043	the
C01186 01044	1¬∂D¬εq¬β↓ ββ(UαJαCRαoαA)α--αconverts¬εαq¬βαintoαaαstringαofαdecimalα
C01187 01045	1¬∂a¬β↓ ββ(Uα
C01188 01046	Jα
C01189 01047	CRα
C01190 01048	oαA)α--αeatsαtheαnextαcharacterαandαloadsαitsαASCIIαvalueαintoαthe
C01191 01049	↓ 	∞¬α 10↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01192 01050	valueα
C01193 01051	inα
C01194 01052	theα
C01195 01053	acα
C01196 01054	andα
C01197 01055	theα
C01198 01056	restα
C01199 01057	ofα
C01200 01058	theα
C01201 01059	stringα
C01202 01060	asα
C01203 01061	theα
C01204 01062	argumentαX.
C01205 01063	dummyα
C01206 01064	characterα
C01207 01065	tackedα
C01208 01066	onα
C01209 01067	theα
C01210 01068	endα
C01211 01069	byα
C01212 01070	aα
C01213 01071	top-levelα
C01214 01072	macroα
C01215 01073	canαbeαused
C01216 01074	1¬∂P¬β↓ ββ(Uα
C01217 01075	1¬∂p¬β↓ ββ(Uα
C01218 01076	1¬∂Q¬εq¬β↓ ββ(Uα
C01219 01077	1¬∂q¬εq¬β↓ ββ(Uα
C01220 01078	1¬∂#¬β↓ ββ(Uα
C01221 01079	1¬∂G¬β↓ ββ(Uα⊃Jα⊂o)α⊂--α⊂popα⊂aα⊂numberα⊂offα⊂theα⊂stackα⊂andα⊂useα⊂thatα⊂numberα⊂toα⊂doα⊂a
C01222 01080	α∪1¬∂F¬βα∩--α∩mustα∩beα∩inα∩theα∩rangeα∩octalα∩0α∩toα∩17α∩toα∩work
C01223 01081	1¬∂V¬εx¬β↓#n1¬εy¬β↓#n1¬εx¬β↓#n2¬εy¬β↓#n2¬εw
C01224 01082	--α
C01225 01083	POXα
C01226 01084	doesα
C01227 01085	nothingα
C01228 01086	toα
C01229 01087	improveα
C01230 01088	theα
C01231 01089	looksα
C01232 01090	ofα
C01233 01091	diagonalα
C01234 01092	vectors,
C01236 01093	finalα
C01237 01094	warningα
C01238 01095	withαvectorsαisαnotαtoαattemptαtoαdoαanythingαat
C01239 01096	1¬∂v¬εx¬β↓#n1¬εy¬β↓#n1¬εx¬β↓#n2¬εy¬β↓#n2¬εt
C01240 01097	α
C01241 01098	isα
C01242 01099	thicknessα
C01243 01100	perpendicularα
C01244 01101	to
C01245 01102	theα
C01246 01103	vectorα
C01247 01104	inα
C01248 01105	allα
C01249 01106	casesα
C01250 01107	--α
C01251 01108	i.e.,α
C01252 01109	forα
C01253 01110	non-horizontalα
C01254 01111	vectors
C01255 01112	byα
C01256 01113	thisα
C01257 01114	commandα
C01258 01115	theα
C01259 01116	sameα
C01260 01117	asα
C01261 01118	byα
C01262 01119	the¬
C01263 01120	α
C01264 01121	1¶V
C01265 01122	¬βcommandα--αnoteαthatαvectorsαwhichαareα
C01266 01123	#¬βstillα⊃comeα⊃outα⊂quiteα⊂uglyα⊂andα⊂usuallyα⊂overshootα⊂theirα⊂specifiedα⊂bottom
C01267 01124	F¬βends.
C01268 01125	1¬∂λ¬β↓ ββ(U)α
C01269 01126	--α
C01270 01127	useα
C01271 01128	theα
C01272 01129	contentsα
C01273 01130	ofα
C01274 01131	theα
C01275 01132	acα
C01276 01133	toα
C01277 01134	setαtheαinterlineαspacing,αthatαis,αthe
C01278 01135	ofα
C01279 01136	eachα
C01280 01137	lineα
C01281 01138	ofαtextα(includingαsubscripts)αandαtheαveryαtopαofαthe
C01282 01139	onα
C01283 01140	whetherα
C01284 01141	theα
C01285 01142	simulatorα
C01286 01143	isα
C01287 01144	enabled.αWithαtheαsimulatorαon,αif
C01288 01145	on,α
C01289 01146	zeroα
C01290 01147	orαnegativeαmeansαsystemαdefaultαwhateverαitαisαtoday
C01291 01148	↓ 	∞¬α 11↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01292 01149	1¬∂ε¬β↓ ββ(U)α∞--α∞useα∞theα∞contentsα∞ofα∞theα∞acα∞toα∞setα∞theα∞interbaseα∞spacing,α∞i.e.,α
C01293 01150	numberα
C01294 01151	ofα
C01295 01152	scanα
C01296 01153	linesα
C01297 01154	thatαbaselinesαareαforcedαapart.αWhenαthe
C01298 01155	interlineα
C01299 01156	spacingα
C01300 01157	isα
C01301 01158	veryα
C01302 01159	negative,α
C01303 01160	thenα
C01304 01161	onlyα
C01305 01162	the
C01306 01163	willα
C01307 01164	beα
C01308 01165	inαcontrol,αandαyouαwillαgetαlinesαwithαtheαsameαamountαof
C01309 01166	1¬∂≤¬β↓ ββ(U)α∪--α∪useα∪theα∪contentsα∪ofα∪theα∪acα∪toα∩setα∩theα∩maximumα∩allowedα∩gap
C01310 01167	wordsαwhenαjustifying.αIfαnarrowαmargins,αcombinedαwithαaαlong
C01312 01168	1¬∂Y¬εq¬β↓ ββ(U)α--αsetαabsoluteαYαpositionαforαtopαscanα
C01313 01169	downα
C01314 01170	theα
C01315 01171	page!α_Textα
C01316 01172	afterα
C01317 01173	thisα
C01318 01174	lineα
C01319 01175	willα
C01320 01176	beα
C01321 01177	belowα
C01322 01178	it
C01323 01179	macro)α
C01324 01180	--α
C01325 01181	WARNING:α↔If¬εαq¬βαisαveryαlargeαitαwillαprobablyαmake
C01326 01182	1¬∂y¬εq¬β↓ ββ(U)α∩--α∩theα∩simulatorα∩maintainsα∩twoα∩parametersα∩thatα∩tellα∩itα∩whereα⊃the
C01327 01183	lineα
C01328 01184	isα
C01329 01185	forcedα
C01330 01186	ontoα
C01331 01187	theα
C01332 01188	nextα
C01333 01189	page,α
C01334 01190	itαwillαbeαplacedαexactlyαatαtheαtop
C01335 01191	isα
C01336 01192	especiallyα
C01337 01193	useful
C01338 01194	1¬∂Y¬βαcommandαhasαbeenαdoneαandαnotαyetαactedαupon,αtheαeffectαofα
C01339 01195	α
C01340 01196	α∀1¬∂Y¬βα∀valueα∀insteadα∀ofα∀addingα∀toα∀theα∀two
C01341 01197	ε¬
C01342 01198	1¬∂B¬εq¬β↓ ββ(UαJα
C01343 01199	,¬βinα1/200αinchαunits).αThisαcommandαonlyαhasαeffectα
C01344 01200	J¬βIfα
C01345 01201	toα
C01346 01202	makeα
C01347 01203	largerα
C01348 01204	thanα
C01349 01205	normalα
C01350 01206	bodiesα
C01351 01207	ofα
C01352 01208	text,α
C01353 01209	totalα
C01354 01210	pageα
C01355 01211	size
C01356 01212	`¬βmustα
C01357 01213	α
C01358 01214	}¬
C01359 01215	1¬∂b¬εq¬β↓ ββ(Uα⊃Jα⊃CRα⊃oα⊃A)α⊃--α⊃readα⊃theα⊃currentα⊃bottom-marginα⊃andα⊂putα⊂itα⊂in¬εα⊂q¬β.α⊂--
C01360 01216	1¬∂T¬εq¬β↓ ββ(Uα
C01361 01217	setα
C01362 01218	topα
C01363 01219	marginα
C01364 01220	inα
C01365 01221	POXα
C01366 01222	(effectiveα
C01367 01223	onlyα
C01368 01224	ifα
C01369 01225	simulatorα
C01370 01226	isα
C01371 01227	on).
C01372 01228	1¬∂t¬εq¬β↓ ββ(Uα
C01373 01229	oα
C01374 01230	A)α
C01375 01231	--α
C01376 01232	readα
C01377 01233	currentα
C01378 01234	topα
C01379 01235	marginα
C01380 01236	andα
C01381 01237	storeα
C01382 01238	itα
C01383 01239	in¬εα
C01384 01240	q¬β.α
C01385 01241	--α
C01386 01242	READONLY
C01387 01243	1¬∂e¬εq¬β↓ ββ(Uα
C01388 01244	CRα
C01389 01245	oα
C01390 01246	A)α
C01391 01247	--α
C01392 01248	changeα
C01393 01249	totalα
C01394 01250	pageα
C01395 01251	sizeα
C01396 01252	to¬εα
C01397 01253	q¬βα
C01398 01254	scanlines.α_Ifα
C01399 01255	thisα
C01400 01256	isα
C01401 01257	usedα
C01402 01258	to
C01403 01259	α
C01404 01260	theα
C01405 01261	valueα
C01406 01262	givenα
C01407 01263	isα
C01408 01264	zero,α
C01409 01265	pagesα
C01410 01266	will
C01411 01267	↓ 	∞¬α 12↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01412 01268	justα
C01413 01269	belowα
C01414 01270	theα
C01415 01271	lastα
C01416 01272	text
C01417 01273	onα
C01418 01274	eachα
C01419 01275	page.α_(Thusα
C01420 01276	youα
C01421 01277	mayα
C01422 01278	wantα
C01423 01279	toα
C01424 01280	putα
C01425 01281	explicitαblankαlinesαat
C01426 01282	noα
C01427 01283	facilityα
C01428 01284	forα
C01429 01285	dynamicallyα
C01430 01286	changingα
C01431 01287	pageα
C01432 01288	size.α_Theα
C01433 01289	last
C01434 01290	1¬∂e¬βα
C01435 01291	inα
C01436 01292	aα
C01437 01293	POXα
C01438 01294	sourceα
C01439 01295	fileα
C01440 01296	affectsα
C01441 01297	theα
C01442 01298	wholeα
C01443 01299	fileα
C01444 01300	byα
C01445 01301	sendingα
C01446 01302	aα
C01447 01303	switch
C01448 01304	theα
C01449 01305	spooler.α↔Therefore,αthisαcommandαshouldαbeαgivenαexactlyαonceαat
C01450 01306	startα
C01451 01307	ofα
C01452 01308	theα
C01453 01309	POXαfile,αtoαavoidαconfusionαifαtextαwereαtoαbeαgenerated
C01454 01310	1¬∂s¬¬<CH>¬β↓ ββ(Uα∞Jα∞CR)α∞--α∞storeα
C01455 01311	asα
C01456 01312	soonα
C01457 01313	asα
C01458 01314	thatα
C01459 01315	informationα
C01460 01316	isα
C01461 01317	availableα
C01462 01318	(inαjustifyαthisαisn'tαuntilαthe
C01463 01319	storedα
C01464 01320	byα
C01465 01321	theα
C01466 01322	timeα
C01467 01323	youα
C01468 01324	lookα
C01469 01325	atα
C01470 01326	it,α
C01471 01327	put
C01472 01328	1¬∂g¬¬<CH>¬β↓ ββ(Uα
C01473 01329	getα
C01474 01330	someα
C01475 01331	parameterα
C01476 01332	(asα
C01477 01333	determinedα
C01478 01334	by¬¬α
C01479 01335	<CH>¬β)α
C01480 01336	andα
C01481 01337	loadα
C01482 01338	it
C01483 01339	1¬∂ge¬β↓ αhBottom edge of paper (set by ¬
C01484 01340	1¬∂e¬εq¬β command)
C01485 01341	1¬∂gλ¬β↓ αhInterline spacing (set by ¬
C01486 01342	1¬∂λ¬β command)
C01487 01343	1¬∂gε¬β↓ αhInterbase spacing (set by ¬
C01488 01344	1¬∂ε¬β command)
C01489 01345	1¬∂gM¬β↓ αhMode (U=1, J=2, CR=4, o=10, A=20 -- octal)
C01490 01346	1¬∂g⊂¬β↓ αhUses old contents of ac (should be 0 or 1) to get special-features word
C01491 01347	1¬∂gm¬β↓ αhUses old ac contents as memory address to peek in core image
C01492 01348	1¬∂gp¬β↓ αhReturns 1 if EVERYPAGE macro not yet called on this page, 0 otherwise
C01493 01349	1¬∂gA¬β↓ αhReturns amount of space still available on this justify-mode line
C01494 01350	1¬∂∃¬¬<CH>¬β↓ ββ(Uα
C01495 01351	getα
C01496 01352	dateα
C01497 01353	andα
C01498 01354	timeα
C01499 01355	last-writtenα
C01500 01356	forα
C01501 01357	currentα
C01502 01358	inputα
C01503 01359	fileα
C01504 01360	and
C01506 01361	1¬∂u¬εq¬β↓ ββ(Uα
C01507 01362	Jα
C01508 01363	CRα
C01509 01364	oα
C01510 01365	A)α
C01511 01366	--α
C01512 01367	generatesα
C01513 01368	andα
C01514 01369	executesα
C01515 01370	aα
C01516 01371	CALLIαUUOαusingαtheαrightαhalf
C01517 01372	α
C01518 01373	--α
C01519 01374	theα
C01520 01375	acα
C01521 01376	isα
C01522 01377	used
C01523 01378	instructionα
C01524 01379	isα
C01525 01380	usedα
C01526 01381	inα
C01527 01382	aα
C01528 01383	specialα
C01529 01384	way
C01530 01385	the
C01531 01386	∞¬βwayα∞youα∞wantα∞--α∞theα∞.SKIP.α∞flagα∞(aα
C01532 01387	,¬βseeα
C01533 01388	H¬
C01534 01389	1¬∂S¬β↓ ββ(U)α↔--α↔generatesα↔aαsampleαofαtheαcurrently-selectedαfontα--αtype
C01535 01390	h¬∂HELP FONT¬βα
C01536 01391	α⊂1¬∂j¬βα⊂commandα⊂isα⊂usedα⊂toα⊂generateα⊂theα⊂indentedα⊂paragraphα∂ofα∂description
C01537 01392	α⊂1¬∂←¬εq¬
C01538 01393	1¬∂→.¬βα⊂isα⊂usedα⊂sometimesα⊂toα⊂setα⊂column
C01539 01394	1¬∂F3x¬
C01540 01395	1¬∂∪1¬
C01541 01396	1¬∂+x¬
C01542 01397	1¬∂∪2¬
C01543 01398	1¬∂+...+x¬
C01544 01399	1¬∂∪n¬
C01545 01400	1¬∂+x¬
C01546 01401	1¬∂∪n+1¬
C01547 01402	1¶
C01548 01403	↓ 	∞¬α 13↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01549 01404
C01552 01405	overlay¬βα
C01553 01406	isα
C01554 01407	likeα
C01555 01408	aα
C01556 01409	black-on-clearα
C01557 01410	transparency.α_Overlaysα
C01558 01411	canα
C01559 01412	beα
C01560 01413	setα
C01561 01414	upα
C01562 01415	byα
C01563 01416	feedingα
C01564 01417	themα
C01565 01418	text
C01566 01419	severalα
C01567 01420	overlaysα
C01568 01421	canα
C01569 01422	beα
C01570 01423	placedα
C01571 01424	over
C01572 01425	anotherα
C01573 01426	andα
C01574 01427	gluedα
C01575 01428	togetherα
C01576 01429	toα
C01577 01430	makeα
C01578 01431	aα
C01579 01432	compoundα
C01580 01433	overlay,α
C01581 01434	whichα
C01582 01435	thenα
C01583 01436	canαbeαfurtherαprocessedαin
C01584 01437	contentsα
C01585 01438	ofα
C01586 01439	anα
C01587 01440	overlayα
C01588 01441	areα
C01589 01442	positionedα
C01590 01443	relativeα
C01591 01444	toα
C01592 01445	anαarbitrary¬ααbasepoint¬β.αWhenαoverlaysαare
C01593 01446	onα
C01594 01447	topα
C01595 01448	ofα
C01596 01449	eachα
C01597 01450	otherα
C01598 01451	andα
C01599 01452	glued,α
C01600 01453	theα
C01601 01454	x,yα
C01602 01455	offsetα
C01603 01456	ofα
C01604 01457	theα
C01605 01458	basepointαofαeachαcomponentαisαspecified
C01606 01459	⊂¬βoperations.
C01607 01460	.¬βInα∪typicalα∪applications,α∪overlaysα∪actα∩asα∩data,α∩andα∩macrosα∩thatα∩callα∩theα∩overlay-manipulation
C01608 01461	L¬βcommandsα
C01609 01462	1¬∂o¬¬<NAME><OPEN><CH><BODY><CLOSE>
C01610 01463	reservedα
C01611 01464	forα
C01612 01465	generatingα
C01613 01466	s-expressions,α
C01614 01467	ifα
C01615 01468	andα
C01616 01469	whenα
C01617 01470	Iα
C01618 01471	implement
C01619 01472	(syntaxα
C01620 01473	isα
C01621 01474	sameα
C01622 01475	asα
C01623 01476	the¬
C01624 01477	α
C01625 01478	1¬∂V¬εx¬β↓#n1¬εy¬β↓#n1¬εx¬β↓#n2¬εy¬β↓#n2¬εw¬βα
C01626 01479	commandα
C01627 01480	withoutα
C01628 01481	the
C01629 01482	α
C01630 01483	1¬βα
C01631 01484	character,α
C01632 01485	effectα
C01633 01486	(semantics)α
C01634 01487	isα
C01635 01488	theα
C01636 01489	sameα
C01637 01490	exceptαthatα(0,0)αisαat
C01638 01491	textαoverlayαwithαtheαcurrentαfontαorαwithαfont¬¬α<CH>¬βαrespectively
C01639 01492	↓ 	∞¬α 14↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01640 01493	theα
C01641 01494	oldα
C01642 01495	oneα
C01643 01496	mayα
C01644 01497	orα
C01645 01498	mayα
C01646 01499	notα
C01647 01500	beα
C01648 01501	deleted,α
C01649 01502	so
C01650 01503	1¬¬n<NAME>¬∂¬β↓ β↔(Uα
C01651 01504	theα
C01652 01505	following
C01654 01506	1¬∂H¬β command
C01655 01507	1¬∂:¬¬n<NAME>¬∂¬β↓ β↔(Uα∂Jα∂CRα∂oα∂A)α∂--α∂clobberα∂parameter¬¬α∂n¬βα∞ofα∞overlayα∞fromα∞contentsα∞ofα∞ac,
C01656 01508	α⊂1¬¬n
C01657 01509	1¬∂&¬¬<NAME_OF_RESULT>¬∂←¬¬<NAME↓#v1↓#>¬∂,¬εx¬¬↓#v1¬εy¬¬↓#v1¬∂&¬¬<NAME↓#v2↓#>¬∂,¬εx¬¬↓#v2¬εy¬¬↓#v2¬∂&¬¬...¬∂&¬¬<NAME↓#vn↓#>¬∂,¬εx¬¬↓#vn¬εy¬¬↓#vn¬∂
C01658 01510	Jα
C01659 01511	CRα
C01660 01512	oα
C01661 01513	A)α--αcombineαoverlaysαbyαlayingαthemαatαvariousαoffsetsαand
C01662 01514	overlayα
C01663 01515	isα
C01664 01516	shiftedα
C01665 01517	soαthatαitsαbaseαpointαisαlocatedαatα(¬εx¬β↓#si↓#,¬εy¬β↓#si↓#)
C01666 01518	--α
C01667 01519	theα
C01668 01520	firstα
C01669 01521	sixα
C01670 01522	parametersα
C01671 01523	areα
C01672 01524	computed
C01673 01525	justα
C01674 01526	toα
C01675 01527	theα
C01676 01528	rightα
C01677 01529	ofα
C01678 01530	whatα
C01679 01531	isα
C01680 01532	alreadyα
C01681 01533	prepared,αandαuseα0αfor
C01682 01534	1¬∂O¬¬<NAME>¬∂,¬εxy
C01683 01535	1¬∂W¬¬<NAME>¬∂,¬εxy
C01684 01536	1¬∂O¬¬<NAME>¬∂¬β↓ β↔(U)α--αoutputαoverlayαtoαXGP,αwithαbasepointαmovedαtoα
C01685 01537	previouslyα
C01686 01538	--α
C01687 01539	Becauseα
C01688 01540	textα
C01689 01541	mustα
C01690 01542	be
C01691 01543	∞¬βdaysα∞inα∞July.α≤Ifα∞youα∞haveα∞theα∞'200000α∞bitα∞on,α∞asα∞Iα∞recommendα∞forα
C01692 01544	*¬βnewα⊃files,α⊃theα⊃followingα⊂moreα⊂reasonableα⊂thingα⊂happens:¬
C01693 01545	α 1¬∂O¬βα⊂always
C01694 01546	J¬βaffectsα∞yourα∞pageα
C01695 01547	h¬βsupposedα
C01696 01548	not
C01697 01549	headers/footings.¬
C01698 01550	α_1¬∂W¬βα
C01699 01551	neverαaffectsαyourαpageαprinterαorαregister
C01700 01552	feature.α_Theα
C01701 01553	followingα
C01702 01554	otherαdifferencesαexist:αthe¬
C01703 01555	α1¬∂W¬βαcommand
C01704 01556	forceα
C01705 01557	theα
C01706 01558	overlayα
C01707 01559	toα
C01708 01560	beα
C01709 01561	onα
C01710 01562	theα
C01711 01563	sameα
C01712 01564	page,α
C01713 01565	evenα
C01714 01566	ifα
C01715 01567	itαisαoutsideαthe
C01716 01568	α∂1¬∂O¬βα∂commandα∞willα∞warnα∞youα∞ifα∞itα∞is
C01717 01569	1¬∂H¬¬<NAME>¬∂¬β↓ β↔(UαJα
C01718 01570	↓ 	∞¬α 15↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01719 01571	isα
C01720 01572	nonzero,α
C01721 01573	andα
C01722 01574	right-kernαcanαbeαobtainedαbyαmodifyingαparameterα7
C01723 01575	1¬∂∂¬¬<NEW_NAME>¬∂←¬¬<OLD_NAME>¬∂
C01724 01576	aα
C01725 01577	goodα
C01726 01578	ideaα
C01727 01579	to
C01728 01580	anyα
C01729 01581	obsoleteα
C01730 01582	overlaysα
C01731 01583	orα
C01732 01584	macrosα
C01733 01585	toαsaveαcoreα--αTheαonlyαother
C01734 01586	done.α
C01735 01587	--α
C01736 01588	Theα
C01737 01589	renameα
C01738 01590	algorithmα
C01739 01591	currentlyαisαasαfollows:αDoαallαthe
C01740 01592	firstα
C01741 01593	forα
C01742 01594	overlays,α
C01743 01595	thenα
C01744 01596	ifα
C01745 01597	thatα
C01746 01598	fallsα
C01747 01599	thru,α
C01748 01600	forα
C01749 01601	macros:α(1)αstart
C01750 01602	<NEW>¬βα
C01751 01603	andα
C01752 01604	return
C01753 01605	ofα
C01754 01606	theα
C01755 01607	tablesα
C01756 01608	ofα
C01757 01609	definitions,α
C01758 01610	andα
C01759 01611	isα
C01760 01612	likelyα
C01761 01613	toα
C01762 01614	changeα
C01763 01615	inα
C01764 01616	the
C01766 01617	aα
C01767 01618	usefulα
C01768 01619	hackα
C01769 01620	usingα
C01770 01621	overlays.α_Supposeαyouαwantαtoαfindαoutαhowαwideαaαstringαofαtextαis
C01771 01622	inputα
C01772 01623	toαtheαPOXαtextαprocessorαpassesαthroughαaαpre-processorαwhichαinsertsαmacroαbodies,
C01773 01624	1¬∂∞¬¬<NAME><OPEN><BODY><CLOSE>
C01774 01625	of
C01775 01626	∪¬βmacros,α
C01776 01627	justαlikeαalmostαeverywhereαelse,αlowerαcaseαisαnotαtheαsameαas
C01777 01628	1¬βupperα⊂case,α⊂thus¬∂α∂fooα∂Fooα∂fOOα∂FOOα∂fOoα∂foOα∂FoO¬βα∂and¬∂α∂FOo¬βα∂areα∂eight
C01778 01629	J¬βdifferentα∪namesα∪--α∪also,α∩the¬¬α∩<BODY>¬α∩isα∩notα∩evaluatedα∩duringα∩this
C01779 01630	h¬definitionα∩phase¬β,α∩i.e.,α∩theα∩escapeα∩characterα∩andα∩anythingα∩elseα⊃may
C01780 01631	1¬∂!¬¬<NAME>¬∂¬β↓ β↔(Uα
C01781 01632	Jα
C01782 01633	CRα
C01783 01634	oα
C01784 01635	A)α
C01785 01636	--α
C01786 01637	callα
C01787 01638	aα
C01788 01639	macro,α
C01789 01640	i.e.,α
C01790 01641	insertα
C01791 01642	bodyα
C01792 01643	fromα
C01793 01644	definitionα
C01794 01645	rightαhere
C01795 01646	inputα
C01796 01647	stream,α
C01797 01648	henceαoccurrencesαofαtheαescapeαcharacterαinαtheαbody
C01798 01649	1¬∂?¬¬<NAME>¬∂¬β↓ β↔(Uα∪Jα∩CRα∩oα∩A)α∩--α∩"conditionalα∩macro"α∩--α∩sameα∩syntaxα∩asα∩aboveα∩but
C01799 01650	1¬∂I¬¬<NAME>¬∂¬β↓ β↔(Uα∞Jα∞CRα∞oα∞A)α∞--α∞"iterateα∞macro",α∞sameα
C01800 01651	α
C01801 01652	↓ 	∞¬α 16↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01802 01653	1¬∂@¬¬<FILNAM>¬∂¬β↓ β↔(Uα
C01803 01654	1¬∂ᬬ<FILNAM>¬∂¬β↓ β↔(U)α∞--α
C01804 01655	1¬∂∀¬¬<FILNAM>¬∂¬¬<LIST OF DESIRED MACRO NAMES>¬∂
C01805 01656	avoidα
C01806 01657	aα
C01807 01658	bugα
C01808 01659	inα
C01809 01660	POX.α_Nothingα
C01810 01661	inα
C01811 01662	theα
C01812 01663	fileα
C01813 01664	isα
C01814 01665	processed
C01815 01666	Itα
C01816 01667	beginsα
C01817 01668	withα
C01818 01669	a
C01819 01670	characterα
C01820 01671	inα
C01821 01672	columnα
C01822 01673	1α
C01823 01674	ofαtheαfile,αi.e.,αimmediatelyαafterαaαlinefeed
C01824 01675	aα
C01825 01676	commandα
C01826 01677	toα
C01827 01678	defineα
C01828 01679	a
C01829 01680	α∂1¬∂∞¬βOor¬
C01830 01681	α∂1¬∂8¬βα∂commandα∂being
C01831 01682	α
C01832 01683	processed,α
C01833 01684	soα
C01834 01685	thatα
C01835 01686	the
C01836 01687	α1¬∂∀¬βαcommand.α∀Also,¬
C01837 01688	α
C01838 01689	α∩1¬∂∀¬βα⊃command.α"For
C01839 01690	purposes,αanyαlibraryαofαPOXαmacrosαshouldαbeginαwithαa
C01840 01691	α
C01841 01692	α
C01842 01693	1¬∂⊃¬βα
C01843 01694	commandα
C01844 01695	pair)α
C01845 01696	thatα
C01846 01697	remindsα
C01847 01698	usersα
C01848 01699	ofα
C01849 01700	theα
C01850 01701	correct
C01851 01702	1¬∂∀REMLIB.POX[1,REM]DATIME,PAGENUMS,SUB,SUP,PAGENUMS
C01852 01703	α⊂1¬∂∂¬βα⊂command)α⊂toα⊂aα⊂shorter
C01853 01704	1¬∂⬬<FILNAM>¬∂¬β↓ β↔(Uα
C01854 01705	Jα
C01855 01706	CRαoαA)α--αlookupαfileαbutαdon'tαreadαanyαofαit.αIfαtheαfileαdoesαnot
C01856 01707	ofα
C01857 01708	theα
C01858 01709	ac.α_Doα
C01859 01710	notα
C01860 01711	inα
C01861 01712	anyαcaseαgenerateαanαerrorαorαotherwise
C01862 01713	filesα
C01863 01714	toα
C01864 01715	beα
C01865 01716	calledα
C01866 01717	laterα
C01867 01718	areα
C01868 01719	missingα
C01869 01720	andα
C01870 01721	needα
C01871 01722	toα
C01872 01723	be
C01873 01724	α1¬∂β¬βαcommandαforαeachαsourceαfileαthatαwillαlaterαbeα
C01874 01725	1¬∂m¬¬<OPEN><TEXT><CLOSE>
C01875 01726	∞¬βcommunicateα≠withα≠theα≠user,α~suchα~asα~toα~indicateα~progressα~with
C01876 01727	,¬βcompilationα∩orα⊃toα⊃listα⊃whichα⊃physicalα⊃pagesα⊃ofα⊃outputα⊃correspondα⊃to
C01877 01728	J¬βwhichα
C01878 01729	h¬βInα
C01879 01730	α∂1¬∂|¬
C01880 01731	1¬β),¬¬α∂<OPEN>¬βα∂and¬¬α∂<CLOSE>¬βα∂areα∞aα∞matchingα∞pairα∞of
C01881 01732	α⊃1¬∂@¬βα⊃command,α⊂afterα⊂theα⊂fileα⊂nameα⊂andα⊂beforeα⊂theα⊂"",α⊂itα⊂hasα⊂beenα⊂proposedα⊂toα⊂allow
C01882 01733	flags,α
C01883 01734	designated¬¬α
C01884 01735	<UC>¬βα
C01885 01736	below.α_Theirα
C01886 01737	purposeα
C01887 01738	willα
C01888 01739	beα
C01889 01740	toα
C01890 01741	saveα
C01891 01742	variousα
C01892 01743	internalαstatesαbefore
C01893 01744	fileα
C01894 01745	won'tα
C01895 01746	passα
C01896 01747	undesiredα
C01897 01748	side-effectsα
C01898 01749	backα
C01899 01750	toα
C01900 01751	theα
C01901 01752	mainα
C01902 01753	program.α_Inα
C01903 01754	theαabsenceαofαany¬¬α<UC>
C01904 01755	↓ 	∞¬α 17↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01906 01756	commandsα
C01907 01757	describedα
C01908 01758	aboveα
C01909 01759	areα
C01910 01760	tooα
C01911 01761	elementaryα
C01912 01762	toα
C01913 01763	beα
C01914 01764	lessα
C01915 01765	thanα
C01916 01766	tediousα
C01917 01767	inα
C01918 01768	practice,
C01919 01769	1¬∂F1¬
C01920 01770	1¬∂x¬
C01921 01771	1¬∂←.¬
C01922 01772	1¬∂→0¬
C01923 01773	1¬∂↑=15¬
C01924 01774	1¬∂F2n¬
C01925 01775	1¬∂←.¬
C01926 01776	1¬∂→1¬
C01927 01777	1¬∂←0¬
C01928 01778	1¬∂→.¬
C01929 01779	1¬∂↓=12i¬
C01930 01780	1¬∂←.¬
C01931 01781	1¬∂~1¬
C01932 01782	1¬∂→.¬
C01933 01783	1¬∂¬
C01934 01784	1¶F1
C01935 01785	1¬∂!txtx¬
C01936 01786	1¬∂!savecol¬
C01937 01787	1¬∂!subi¬
C01938 01788	1¬∂!swapcol¬
C01939 01789	1¬∂!supn¬
C01940 01790	1¶!maxcol
C01941 01791	↓ αH1¬∂∞main[x]¬
C01942 01792	1¬∂∞sub[i]¬
C01943 01793	1¬∂∞sup[n]¬
C01944 01794	1¶!sbp
C01945 01795	1¶!sbp(x,i,n)
C01946 01796	buildα
C01947 01797	upα
C01948 01798	outα
C01949 01799	ofα
C01950 01800	macros-with-argumentsα
C01951 01801	partiallyα
C01952 01802	obviatesα
C01953 01803	theα
C01954 01804	necessity
C01955 01805	1¬∂8¬¬<NAME>¬∂(¬¬<ARGNAMES>¬∂)¬¬<OPEN><BODY><CLOSE>
C01956 01806	--α
C01957 01807	Upα
C01958 01808	to¬∂α
C01959 01809	'30¬βαalphanumericαstringsαseparatedαbyαcommas.α(Noteαthatαthe
C01960 01810	"body"α
C01961 01811	ofα
C01962 01812	the
C01963 01813	α
C01964 01814	∂¬βPOXα∞countsα∞howα∞manyα∞levelsα∞deepα
C01965 01815	-¬βdepthα
C01966 01816	reachesα
C01967 01817	zero,α
C01968 01818	i.e.,α
C01969 01819	whenα
C01970 01820	the¬¬α
C01971 01821	<CLOSE>¬βα
C01972 01822	appearsα
C01973 01823	thatα
C01974 01824	matchesαtheαoriginal¬¬α<OPEN>¬β.
C01975 01825	K¬βOfα
C01976 01826	course,α
C01977 01827	ifα
C01978 01828	youαuseαaαquotingαpairαtoαdelimitαtheαbody,αtheαquotingαcharactersαmay
C01979 01829	i¬βnotα
C01980 01830	1¬βα⊂(i.e.,α⊂whateverα⊂yourα∂brickα∂characterα∂isα∂atα∂theα∂timeα∂youα∂defineα∂theα∂macro)α∂gets
C01981 01831	ifα
C01982 01832	theα
C01983 01833	VERESCα
C01984 01834	special-featureα
C01985 01835	bitα
C01986 01836	isα
C01987 01837	on,α
C01988 01838	otherwiseα
C01989 01839	it
C01990 01840	α1¬βα
C01991 01841	α∀1¬∂|¬¬<CH>¬βα∀toα∀redefineα∀theα∀brickα∀characterα∀inα∀the
C01992 01842	↓ 	∞¬α 18↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C01994 01843	1¬∂!¬¬<NAME><ARGBATCH><ARGBATCH>...<ARGBATCH>¬∂
C01995 01844	<OPEN>α
C01996 01845	<CLOSE>¬βα
C01997 01846	pairα
C01998 01847	(whenα
C01999 01848	the¬¬α
C02000 01849	<OPEN>¬βα
C02001 01850	isα
C02002 01851	seen,αPOXαlooksαitαupαinαaαtableαto
C02003 01852	inα
C02004 01853	theα
C02005 01854	aboveα
C02006 01855	syntaxα
C02007 01856	specification),α
C02008 01857	providedα
C02009 01858	thatα
C02010 01859	theα
C02011 01860	totalαnumberαofαarguments
C02012 01861	notα
C02013 01862	exceed¬∂α
C02014 01863	'30¬β.α_Theα
C02015 01864	mostα
C02016 01865	commonα
C02017 01866	wayα
C02018 01867	ofα
C02019 01868	doingα
C02020 01869	it,α
C02021 01870	andα
C02022 01871	theαeasiest,αisαtoαuse
C02023 01872	1¶!FOO(First argument,Second argument,Third arg)
C02024 01873	1¶!LESHACK(First argument with ",")(Second argument)(Third)
C02025 01874	1¶!MESS<This contains (, [, ", and { inside an argument>
C02026 01875	passedα
C02027 01876	toα
C02028 01877	theα
C02029 01878	macro-bodyα
C02030 01879	expander,αandαtheαalgorithmαtheαmacro-bodyαexpander
C02031 01880	and¬
C02032 01881	α
C02033 01882	1¬β)α
C02034 01883	areα
C02035 01884	generatedα
C02036 01885	insideα
C02037 01886	the
C02038 01887	thatα
C02039 01888	itα
C02040 01889	isα
C02041 01890	notα
C02042 01891	legalα
C02043 01892	toα
C02044 01893	generateα
C02045 01894	anα
C02046 01895	ASCIIα
C02047 01896	'177
C02048 01897	untilα
C02049 01898	afterα
C02050 01899	theα
C02051 01900	expandedαmacroαhasαbeenαgeneratedαandαpatchedαintoαthe
C02052 01901	α∞1¬∂A¬βα∞haveα∞aα∞slightlyα∞differentα∞effectα∞dependingα∞onα
C02053 01902	
C02054 01903	¬
C02055 01904	1¬∂?¬¬<NAME><OPEN><ACTUAL ARGS><CLOSE><OPEN><A.A.><CLOSE>...¬∂
C02056 01905	,¬β  ↓ α?(Uα
C02057 01906	A)α
C02058 01907	--α
C02059 01908	conditionallyα
C02060 01909	callα
C02061 01910	aα
C02062 01911	macroα
C02063 01912	withα
C02064 01913	arguments.α_Atα
C02065 01914	theα
C02066 01915	beginningα
C02067 01916	ofα
C02068 01917	the
C02069 01918	H¬βscan,αjustαafterαtheα"¬
C02070 01919	1¬∂?¬β"αhasαbeenαseen,αaαflagαisαsetαaccordingαtoαwhetherαtheαacα
C02071 01920	f¬βpositiveα
C02072 01921	argumentα
C02073 01922	scanningα
C02074 01923	etc.α
C02075 01924	isα
C02076 01925	performedα
C02077 01926	justα
C02078 01927	likeα
C02079 01928	inα
C02080 01929	theα
C02081 01930	"¬
C02082 01931	1¬∂!¬β"
C02083 01932	1¬∂I¬¬<NAME><OPEN><ACTUAL ARGS><CLOSE><OPEN><A.A.><CLOSE>...¬∂
C02084 01933	α⊂1¬∂I¬¬<NAME>¬∂
C02085 01934	↓ 	∞¬α 19↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02086 01935	Ifα
C02087 01936	theα
C02088 01937	commandα
C02089 01938	was¬
C02090 01939	α
C02091 01940	1¬∂?¬βα
C02092 01941	thenα
C02093 01942	theα
C02094 01943	splice-enablingα
C02095 01944	flagα
C02096 01945	isα
C02097 01946	setα
C02098 01947	accordingα
C02099 01948	toα
C02100 01949	theα
C02101 01950	contentsαofαthe
C02102 01951	butα
C02103 01952	ifα
C02104 01953	theα
C02105 01954	commandαis¬
C02106 01955	α1¬∂!¬βαthenαtheαflagαisαsetαtoαTRUEαregardless.αTextαisαscannedαuntilαaαdelimiter
C02109 01956	itα
C02110 01957	isα
C02111 01958	theα
C02112 01959	close-nestingα
C02113 01960	orα
C02114 01961	quotingα
C02115 01962	characterα
C02116 01963	thenα
C02117 01964	weαdecrementαnestingαdepth,αthenαdepending
C02118 01965	following:α_DEPTH<0,α
C02119 01966	closeα
C02120 01967	offα
C02121 01968	thisα
C02122 01969	argument-body,α
C02123 01970	putα
C02124 01971	itα
C02125 01972	inα
C02126 01973	theα
C02127 01974	tableα
C02128 01975	of
C02130 01976	α
C02131 01977	argument-bodyα
C02132 01978	andαcontinueα(3)αscanningαelseαcloseαoffαtheαargument-bodyαandαputαitαinαtheαtable
C02133 01979	theα
C02134 01980	brickα
C02135 01981	characterα
C02136 01982	thenα
C02137 01983	parseα
C02138 01984	theα
C02139 01985	brick-commandα
C02140 01986	asα
C02141 01987	describedα
C02142 01988	inα
C02143 01989	(4),α
C02144 01990	andα
C02145 01991	continue
C02146 01992	α∂1¬∂A¬εq¬β,¬
C02147 01993	α∂11¬βα∂and
C02148 01994	1¬∂"¬¬<CH>¬β)α
C02149 01995	spliceα
C02150 01996	textα
C02151 01997	intoα
C02152 01998	theα
C02153 01999	inputα
C02154 02000	streamα
C02155 02001	(theseα
C02156 02002	commandsα
C02157 02003	are¬
C02158 02004	α
C02159 02005	1¬∂D¬εq¬β,¬
C02160 02006	α
C02161 02007	1¬∂!¬β...,¬
C02162 02008	α
C02163 02009	1¬∂?¬β...,¬
C02164 02010	α
C02165 02011	1¬∂@¬β...
C02166 02012	α
C02167 02013	1¬∂α¬β...).α↔Inαtheαlatterαgroupαofαcommands,αtheαsplicedαtextαwillαbeαseenαlaterαbyαtheα(3)αscanner,αand
C02168 02014	α⊂1¬∂!¬βα⊂and¬
C02169 02015	α∂1¬∂?¬βα∂commandsα∂areα∂especiallyα∂interestingα∂whenα∂theyα∂notα∂onlyα∂areα∂executedα∂while
C02170 02016	beganα
C02171 02017	earlier)α
C02172 02018	isα
C02173 02019	savedα
C02174 02020	onα
C02175 02021	theα
C02176 02022	stack,α
C02177 02023	andα
C02178 02024	thisα
C02179 02025	pieceα
C02180 02026	ofα
C02181 02027	codeα
C02182 02028	inα
C02183 02029	POXα
C02184 02030	(i.e.,α
C02185 02031	(1)α
C02186 02032	thruα(5)αasαdescribed
C02187 02033	ofα
C02188 02034	codeα
C02189 02035	returns,α
C02190 02036	afterα
C02191 02037	splicingα
C02192 02038	theα
C02193 02039	inputα
C02194 02040	stream,α
C02195 02041	thatα
C02196 02042	status-informationα
C02197 02043	isα
C02198 02044	restored
C02199 02045	∞¬βandα∂scanningα∂isα∂resumedα∞atα∞thisα∞levelα∞asα∞ifα∞nothingα∞hadα∞happenedα∞(except,α∞ofα∞course,α∞thatα∞sinceα∞the
C02200 02046	,¬βinputα
C02201 02047	hasα
C02202 02048	beenα
C02203 02049	spliced,α
C02204 02050	theα
C02205 02051	outputα
C02206 02052	fromα
C02207 02053	thatα
C02208 02054	lower-levelα
C02209 02055	ofα
C02210 02056	macro-expansionα
C02211 02057	willα
C02212 02058	nowα
C02213 02059	beα
C02214 02060	seen
C02215 02061	J¬βbyα
C02216 02062	h¬βUsersαofαLISPα1.6αandαvariantsαthereofαwillαnote,αinαtheαcaseαwhereα
C02217 02063	callα
C02218 02064	orα
C02219 02065	oneα
C02220 02066	quotedα
C02221 02067	stringα
C02222 02068	ofα
C02223 02069	textαinαeachαargument,αthatαtheαfinalαresultαofαPOXαmacroαexpansion
C02224 02070	1¬∂!FOO(¬
C02225 02071	1¬∂!BAZ(¬
C02226 02072	1¬∂!FB),¬
C02227 02073	1¶!GAR(FG))
C02228 02074	1¬∂!FOO(BAZ¬
C02229 02075	1¶!GAR(FG))
C02230 02076	[Theα
C02231 02077	onlyα
C02232 02078	wayα
C02233 02079	toα
C02234 02080	reachα
C02235 02081	thisα
C02236 02082	pieceα
C02237 02083	ofα
C02238 02084	codeα
C02239 02085	isα
C02240 02086	toαjumpαhereαfromα(2)αafterαseeingαaαsemicolon
C02241 02087	↓ 	∞¬α 20↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02242 02088	argumentsα
C02243 02089	scannedα
C02244 02090	inα
C02245 02091	(3)α
C02246 02092	etc.,α
C02247 02093	and
C02248 02094	areα
C02249 02095	nowα
C02250 02096	flushedα
C02251 02097	(theα
C02252 02098	onlyα
C02253 02099	purposeα
C02254 02100	ofα
C02255 02101	allα
C02256 02102	thisα
C02257 02103	scanningα
C02258 02104	wasα
C02259 02105	toα
C02260 02106	makeα
C02261 02107	the
C02262 02108	comeα
C02263 02109	outα
C02264 02110	rightα
C02265 02111	atα
C02266 02112	thisα
C02267 02113	level,α
C02268 02114	althoughα
C02269 02115	anyα
C02270 02116	side-effectsα
C02271 02117	(suchα
C02272 02118	asα
C02273 02119	storingα
C02274 02120	aαvalueαinαaαregisterαor
C02275 02121	the
C02276 02122	flagα
C02277 02123	↓&was↓)αβαset,αthenαtheαcurrentαinputαstreamαisαnowαIOPUSHedαsoαthatαitαcanαbeαresumed
C02278 02124	toα
C02279 02125	theα
C02280 02126	macroα
C02281 02127	bodyα
C02282 02128	weα
C02283 02129	lookedαupαandαsetαasideαinα(1)αabove,αwithαtheαlistαofαargument-bodies
C02284 02130	byα
C02285 02131	toα
C02286 02132	beα
C02287 02133	referencedα
C02288 02134	wheneverα
C02289 02135	an¬¬α
C02290 02136	<ARGn>¬βα
C02291 02137	tokenα
C02292 02138	appearsαinαtheαmacroαbody.αInαanyαcase,αthis
C02293 02139	sameα
C02294 02140	effectα
C02295 02141	asα
C02296 02142	MACROs,αalthoughαbyαaαdifferentαmechanismα--αofαcourse,αthisαparallelαbreaksαdown
C02297 02143	makeα
C02298 02144	similarα
C02299 02145	things
C02300 02146	attemptα
C02301 02147	toα
C02302 02148	inputα
C02303 02149	charactersα
C02304 02150	fromα
C02305 02151	theα
C02306 02152	macro-bodyα
C02307 02153	withα
C02308 02154	argument-listα
C02309 02155	thatαnowαconstitutesαthe
C02310 02156	aα
C02311 02157	macro-bodyαorαanαargument-bodyα(whichαisαtreatedαexactlyαlikeαaαmacro-bodyαexceptαthatαtheαlist
C02312 02158	fromα
C02313 02159	theα
C02314 02160	next-higherα
C02315 02161	input
C02316 02162	processingα
C02317 02163	andα
C02318 02164	exit.)α_Finally,α
C02319 02165	ifα
C02320 02166	aα
C02321 02167	specialα
C02322 02168	tokenα
C02323 02169	isα
C02324 02170	seenα
C02325 02171	while
C02326 02172	α∞1¬βα∞characterα∞the¬¬α
C02327 02173	beα
C02328 02174	switchedα
C02329 02175	toα
C02330 02176	thatα
C02331 02177	n↓#
C02332 02178	argument-body,α
C02333 02179	whichα
C02334 02180	willα
C02335 02181	nowα
C02336 02182	beα
C02337 02183	usedα
C02338 02184	untilα
C02339 02185	itαisαexhausted,αatαwhichαtime
C02340 02186	toα
C02341 02187	demonstrateα
C02342 02188	theα
C02343 02189	argument
C02344 02190	1¬∂8sbp(main,sub,sup)[¬
C02345 02191	1¬∂F1¬
C02346 02192	1¬∂main¬
C02347 02193	1¬∂←.¬
C02348 02194	1¬∂→0¬
C02349 02195	1¬∂↑=15¬
C02350 02196	1¬∂F2sup¬
C02351 02197	1¬∂←.¬
C02352 02198	1¬∂→1¬
C02353 02199	1¶N
C02354 02200	1¬∂←0¬
C02355 02201	1¬∂→.¬
C02356 02202	1¬∂↓=12sub¬
C02357 02203	1¬∂←.¬
C02358 02204	1¬∂~1¬
C02359 02205	1¬∂→.¬
C02360 02206	1¬∂¬
C02361 02207	1¶F1]
C02362 02208	¬∧X¬¬↓#si-1↓#
C02363 02209	O¬∧(You must do ¬π1¬∂⊂'400¬∧ or equivalent before the syntax of nesting (below) will be allowed.)
C02364 02210	o¬∂\!sbp(X,(\f9i)-1,(\f9n))↓ ¬H\Inside multiple-nested, everything is quoted
C02365 02211	↓ 	∞¬α 21↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02369 02212	quiteα
C02370 02213	similarα
C02371 02214	toα
C02372 02215	theα
C02373 02216	wayα
C02374 02217	EXPRsα
C02375 02218	areα
C02376 02219	evaluatedα
C02377 02220	inα
C02378 02221	LISP.α_In
C02379 02222	seenα
C02380 02223	inα
C02381 02224	theα
C02382 02225	inputα
C02383 02226	stream.α_The
C02384 02227	~¬αtheα∂inputα∂file)α∂andα∂someα∂resultingα∂fromα∂macroα∂callsα∂orα∂commandsα∂like¬πα∂1¬∂D¬α,α∂andα∂thenα∞theα∞resultant
C02385 02228	:¬αstringα
C02386 02229	getsα
C02387 02230	evaluatedα
C02388 02231	asα
C02389 02232	ifαitαhadαbeenαinαyourαinputαfileαallαalong.αForαexample,αtheαaboveαeffectαof
C02390 02233	X¬αMONTH(NSTR)α
C02391 02234	v¬∂\8EVAL(expr)[expr]\↓ εHAs described above
C02392 02235	¬∂\↓ ∧H(2) The string spliced in is \!MONTH(4) if this is still April
C02393 02236	↓ 	∞¬α 22↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02395 02237	threeα
C02396 02238	typesα
C02397 02239	ofα
C02398 02240	nestingα
C02399 02241	characters,¬∂α
C02400 02242	[]α
C02401 02243	()¬βαandα{},αareαusedαtoαisolateαnestingαprocessingαinto
C02402 02244	anα
C02403 02245	ASCIIα
C02404 02246	040α
C02405 02247	(space)α
C02406 02248	characterα
C02407 02249	toα
C02408 02250	beα
C02409 02251	usedα
C02410 02252	asα
C02411 02253	zero-fillα
C02412 02254	toαtheαleftαofαone-digitαnumbers,αand
C02413 02255	ofα
C02414 02256	whatα
C02415 02257	happensα
C02416 02258	whenα
C02417 02259	this
C02418 02260	"D#(}))"α
C02419 02261	whereα
C02420 02262	<BRICK>α
C02421 02263	denotesα
C02422 02264	the¬
C02423 02265	α
C02424 02266	1¬βα
C02425 02267	tokenα(storedαinternallyαasα177,175),α<ARGα1>αdenotes
C02426 02268	α
C02427 02269	DEFCONTα
C02428 02270	macroα
C02429 02271	isα
C02430 02272	patchedα
C02431 02273	intoα
C02432 02274	theα
C02433 02275	inputα
C02434 02276	stream,α
C02435 02277	andα
C02436 02278	inα
C02437 02279	theα
C02438 02280	processα
C02439 02281	ofα
C02440 02282	readingα
C02441 02283	itα
C02442 02284	in
C02443 02285	1>α
C02444 02286	areα
C02445 02287	replacedα
C02446 02288	byα
C02447 02289	"¬
C02448 02290	1¬β"α
C02449 02291	andα
C02450 02292	"¬∂A3¬β"α
C02451 02293	respectively,α
C02452 02294	resultingα
C02453 02295	inα
C02454 02296	theα
C02455 02297	followingα
C02456 02298	string
C02457 02299	passedα
C02458 02300	asα
C02459 02301	(quoted)α
C02460 02302	textα
C02461 02303	(2)α
C02462 02304	Register¬∂α
C02463 02305	#¬βα
C02464 02306	isα
C02465 02307	fetchedα
C02466 02308	andα
C02467 02309	testedα
C02468 02310	to
C02469 02311	bindingα
C02470 02312	ofα
C02471 02313	theα
C02472 02314	firstα
C02473 02315	argument,α
C02474 02316	andα
C02475 02317	terminatesα
C02476 02318	allα
C02477 02319	bindingα
C02478 02320	forα
C02479 02321	theα
C02480 02322	callα
C02481 02323	ofα
C02482 02324	EVAL,α
C02483 02325	and
C02484 02326	ifαthisαisαdoneαonαpageα5,αtheαstringα"¬∂\∞CXA3{α5}¬β"α(theαargument)αisαnowαeffectivelyαinαthe
C02485 02327	string¬
C02486 02328	α
C02487 02329	1¬∂!CXA3¬βα
C02488 02330	willα
C02489 02331	generateα
C02490 02332	theα
C02491 02333	correct
C02492 02334	⊃¬∂\!ACCTIM\ load a register with system date-time by means of the ¬
C02493 02335	1¶u command
C02494 02336	1¬∂\!EVAL((\∞TODAY[)\!DATIME(]))\
C02495 02337	O¶\ call DATIME (in POX3.POX[CSP,DOC]) and hardwire the result into the TODAY macro
C02496 02338	m¬∂\∞IDENT[POX writeup -- compiled by POX on ]\
C02498 02339	amountαofαtimeαduringαcompilation.)αInαgeneral,αinαPOXαtheαorderαofαevaluationαofαargumentsαmay
C02499 02340	↓ 	∞¬α 23↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02500 02341	numberα
C02501 02342	ofα
C02502 02343	monthα
C02503 02344	(0α
C02504 02345	toα
C02505 02346	11α
C02506 02347	decimal)αleavingαitαinαregisterαM.αSupposeαthatαMONTH1αisαaαmacroαthat
C02507 02348	streamα
C02508 02349	whichα
C02509 02350	willα
C02510 02351	thenα
C02511 02352	generateα
C02512 02353	"¬∂March¬β".α_Theα
C02513 02354	followingα
C02514 02355	commands
C02515 02356	MONTH12α
C02516 02357	macrosα
C02517 02358	areα
C02518 02359	changedα
C02519 02360	(suchα
C02520 02361	asα
C02521 02362	toα
C02522 02363	aα
C02523 02364	setα
C02524 02365	of
C02528 02366	α1¬∂@¬βαcommandαreadsα
C02529 02367	inα
C02530 02368	laterα
C02531 02369	andα
C02532 02370	processingα
C02533 02371	it
C02534 02372	ofα
C02535 02373	aαcompleteαdocumentαorαaαchapter,αthenαreadαbackαinαatαtheαendαandαemittedαfullyαprocessed
C02536 02374	∪¬βintoαtheαmainα(.XGP)αoutputαfile.αAα
C02537 02375	1¬βmovedα
C02538 02376	N¬
C02539 02377	1¬∂<¬εq¬¬<FILNAM>¬∂¬β↓ β⊂(Uα
C02540 02378	Jα
C02541 02379	CRα
C02542 02380	o)α
C02543 02381	--α
C02544 02382	openα
C02545 02383	theα
C02546 02384	file¬¬α
C02547 02385	<FILNAM>¬βα
C02548 02386	onαlogicalαi/oαchannel¬εαq¬β.αAvailable
C02549 02387	v¬βlogicalαchannelsαareα
C02550 02388	α∀1¬∂<=1CONT.TMP¬βα
C02551 02389	1¬∂=¬εq¬¬<OPEN><TEXT><CLOSE>
C02552 02390	i/oα
C02553 02391	channel¬εα
C02554 02392	q¬βα
C02555 02393	forα
C02556 02394	output,α
C02557 02395	parseα
C02558 02396	theα
C02559 02397	text
C02560 02398	aα
C02561 02399	macroα
C02562 02400	(exceptα
C02563 02401	thatα
C02564 02402	commaα
C02565 02403	doesn'tα
C02566 02404	causeα
C02567 02405	break
C02568 02406	parsingα
C02569 02407	becauseα
C02570 02408	onlyα
C02571 02409	oneα
C02572 02410	"argument"α
C02573 02411	isα
C02574 02412	everαparsed).αTheαresultαof
C02575 02413	↓ 	∞¬α 24↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02576 02414	α∞1¬∂=¬βα∞commandsα∞are
C02577 02415	α
C02578 02416	emittedα
C02579 02417	areα
C02580 02418	sequencesα
C02581 02419	thatα
C02582 02420	includeα
C02583 02421	theα
C02584 02422	brickα
C02585 02423	character,α
C02586 02424	quoted
C02587 02425	1¬∂>¬εq¬β↓ β⊂(UαJαCRαo)α--αcloseαtheαfileαonαlogicalαi/oαchannel¬εαq¬β.α∃Thisα
C02588 02426	1¬∂E¬¬<IN>↓#v1↓#<OUT>↓#v1↓# ... <IN>↓#vn↓#<OUT>↓#vn¬∂
C02589 02427	ofα
C02590 02428	aα
C02591 02429	documentα
C02592 02430	beforeα
C02593 02431	readingα
C02594 02432	itα
C02595 02433	backα
C02596 02434	inα
C02597 02435	asα
C02598 02436	theα
C02599 02437	lastαpartαof
C02601 02438	theα
C02602 02439	followingα
C02603 02440	threeαcommands,αtheαleftαhalfαof¬εαq¬β,αspecifiesαaαbatchαofαfeatures,αandαtheαbitsαin
C02604 02441	ofα
C02605 02442	theα
C02606 02443	firstα
C02607 02444	command,
C02608 02445	youα
C02609 02446	may
C02610 02447	1¬∂`¬εq¬β↓ ββ(U)α--αsetαspecialαfeaturesαhalfwordαfromαrightαhalfαof¬εαq¬βα--αThisα
C02611 02448	"¬βisα∂notα∂recommendedα∂becauseα∂itα∂clobbersα∂bitsα∞youα∞mayα∞haveα∞setα∞earlier
C02612 02449	@¬βandα
C02613 02450	]¬
C02614 02451	1¬∂⊂¬εq¬β↓ ββ(U)α
C02615 02452	useα
C02616 02453	rightα
C02617 02454	halfα
C02618 02455	of¬εα
C02619 02456	q¬βα
C02620 02457	asα
C02621 02458	aα
C02622 02459	maskα
C02623 02460	forα
C02624 02461	turningα
C02625 02462	onα
C02626 02463	bits,α
C02627 02464	leavingα
C02628 02465	theα
C02629 02466	rest
C02630 02467	1¬∂⊃¬εq¬β↓ ββ(U)α--αuseαrightαhalfαof¬εαq¬βαasαaα
C02631 02468	themα
C02632 02469	on,
C02633 02470	itα
C02634 02471	isα
C02635 02472	frequentlyα
C02636 02473	usefulα
C02637 02474	toα
C02638 02475	toggleα
C02639 02476	themα
C02640 02477	onα
C02641 02478	andα
C02642 02479	off.α_Ifα
C02643 02480	funnyα
C02644 02481	thingsα
C02645 02482	canαhappenαwithαtoggling,αI
C02646 02483	1¬β"α
C02647 02484	↓ 	∞¬α 25↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02648 02485	desirableα
C02649 02486	mostα
C02650 02487	ofα
C02651 02488	theα
C02652 02489	timeα
C02653 02490	areα
C02654 02491	VERSIM,α
C02655 02492	VERSGK,α
C02656 02493	VERREM,α
C02657 02494	VERRHT,α
C02658 02495	VERESCα
C02659 02496	and
C02660 02497	ofαtheseαcanαbeαturnedαonαby¬
C02661 02498	α1¬∂⊂'0302454¬
C02662 02499	1¬∂⊂'1000003¬βαatαtheαveryαbeginningαofαyour
C02664 02500	oneα
C02665 02501	or
C02666 02502	outputα
C02667 02503	onα
C02668 02504	theα
C02669 02505	currentα
C02670 02506	page,α
C02671 02507	theα
C02672 02508	xspoolerα
C02673 02509	willα
C02674 02510	probablyα
C02675 02511	abortα
C02676 02512	dueα
C02677 02513	toα
C02678 02514	incorrect
C02679 02515	sequenceα
C02680 02516	--α
C02681 02517	Inα
C02682 02518	conclusion,α
C02683 02519	youα
C02684 02520	shouldα
C02685 02521	turnα
C02686 02522	onαtheαsimulatorαbeforeαanyαtextαisαoutputαatαall,αorαnot
C02687 02523	α
C02688 02524	onα
C02689 02525	theα
C02690 02526	simulatorα
C02691 02527	beforeα
C02692 02528	outputtingα
C02693 02529	any
C02694 02530	1¶!EVERYPAGE occurring in
C02695 02531	1¶...<CR><LF> while in
C02696 02532	1¶!EVERYPAGE yourself once there.
C02698 02533	→¬∂VERSMT←←002000↓ βH$'<OCTAL> NEW WAY -- 177 ONLY IF NEEDED
C02699 02534	7¬∂VERIDC←←004000↓ βHSPECIAL REQUEST BY RHT, NO ERROR IF  OMITTED AFTER MACRO CALL
C02700 02535	U¬∂VERPAG←←010000↓ βHAUTOMATIC PAGE CHANGE W/OUT FIRST WARNING, TEXT AND $O OUTPUT OVL
C02701 02536	s¶(If the input file is exhausted when page-overflow
C02703 02537	↓ 	∞¬α 26↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02705 02538	1¬∂8 or ¬
C02706 02539	1¬∂∞ command).
C02707 02540	(75α
C02708 02541	AUGα
C02709 02542	03)α
C02710 02543	--α
C02711 02544	Theα
C02712 02545	tokenα
C02713 02546	inα
C02714 02547	theα
C02715 02548	macroα
C02716 02549	bodyα
C02717 02550	isα
C02718 02551	replacedα
C02719 02552	byα
C02720 02553	theαcurrentαbrickαcharacterαat
C02721 02554	theα
C02722 02555	macroα
C02723 02556	bodyα
C02724 02557	includesα
C02725 02558	\|$...$|\α
C02726 02559	it
C02727 02560	itα
C02728 02561	\α
C02729 02562	isα
C02730 02563	theα
C02731 02564	brickα
C02732 02565	character,α
C02733 02566	theα
C02734 02567	<brick>|$
C02735 02568	the
C02737 02569	11¶ "FEATURE"
C02738 02570	1¬∂H¬β command instead.)
C02740 02571	α1¬∂⊂'446¬βαwillαturnα
C02741 02572	α∞1¬∂⊂'1000001¬βα∞willα
C02742 02573	11¬βα⊃command.α"Atα⊃aα⊃laterα⊃time¬
C02743 02574	α⊃1¬∂⊃'2¬βα⊃willα⊂turnα⊂offα⊂theα⊂traceα⊂without
C02744 02575	≡¬βIfα
C02745 02576	youα
C02746 02577	haveα
C02747 02578	theα
C02748 02579	VERTRCα
C02749 02580	flagα
C02750 02581	enabledα
C02751 02582	(seeα
C02752 02583	the¬
C02753 02584	α1¬∂⊂¬βαcommandαetαal)αvariousαrandomαthingsαwillαget
C02754 02585	=¬βtypedα
C02755 02586	outα
C02756 02587	whileα
C02757 02588	POXα
C02758 02589	isα
C02759 02590	running,αincludingαtextαinαyourαinputαfileαappearingαafter¬
C02760 02591	α1¬∂¬βαand¬
C02761 02592	α1¬∂,¬βαcommands.
C02762 02593	]¬βForα⊂theα⊂mostα⊂partα⊂youα⊂mayα⊂ignoreα⊂them.α Ifα⊂youα∂reallyα∂wantα∂toα∂knowα∂aboutα∂them,α∂askα∂REMα∂about
C02763 02594	{¬βparticularαones,αorαlookα
C02764 02595	α⊂1¬∂⊂¬βα⊂commandα⊂etα⊂al)α⊂--α⊂The
C02765 02596	"¬∂,¬β"
C02766 02597	areα
C02767 02598	5α
C02768 02599	kindsα
C02769 02600	ofα
C02770 02601	errorsα
C02771 02602	thatαcanαoccurαwhileαPOXαisαcompilingαaαtextαfile:α(1)αE40α=αbugsαin
C02772 02603	↓ 	∞¬α 27↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02773 02604	re-synchronizeα
C02774 02605	itselfα
C02775 02606	soonα
C02776 02607	enoughα
C02777 02608	toα
C02778 02609	beαableαtoαdoαtheαrestαofαtheαfileαmostlyαcorrectly.α(2)αE40F
C02779 02610	inα
C02780 02611	POXα
C02781 02612	inα
C02782 02613	codeα
C02783 02614	thatα
C02784 02615	isα
C02785 02616	inα
C02786 02617	aα
C02787 02618	stateα
C02788 02619	ofα
C02789 02620	debuggingα
C02790 02621	andα
C02791 02622	stillα
C02792 02623	hasα
C02793 02624	ASCIIα
C02794 02625	warningαmessagesαforαdetected
C02795 02626	E40α
C02796 02627	errorsα
C02797 02628	theα
C02798 02629	errorα
C02799 02630	messageα
C02800 02631	isα
C02801 02632	typedα
C02802 02633	out,α
C02803 02634	thenα
C02804 02635	theα
C02805 02636	currentα
C02806 02637	levelαofαmacroαexpansionαorαfile
C02807 02638	isα
C02808 02639	typedα
C02809 02640	outα
C02810 02641	inα
C02811 02642	aboutα
C02812 02643	theα
C02813 02644	sameα
C02814 02645	wayαasαtheαSAILαcompilerαannouncesαcompilationαerrors,αthenαthe
C02815 02646	argumentαtoαmacro,αtheαtextαofαtheαillegalαcommandαisαpassedαunevaluatedαtoαtheαargumentαjust
C02817 02647	isα
C02818 02648	implementedα
C02819 02649	itα
C02820 02650	causesαtheαspecialαmodeα(suchαasαjustify)αtoαbeαleftαimmediatelyαbeforeαresuming
C02822 02651	E¬βα
C02823 02652	toα
C02824 02653	returnα
C02825 02654	toαdisplayαeditorαatαthisαlocationαinαtheαinputαfile.αTheαonlyαwayαthatαcurrently
C02826 02655	forα
C02827 02656	gettingα
C02828 02657	fromα
C02829 02658	Eα
C02830 02659	backα
C02831 02660	toα
C02832 02661	POXα
C02833 02662	automaticallyα
C02834 02663	withα
C02835 02664	theα
C02836 02665	correctα
C02837 02666	top-levelαfile,αisαtoαhaveαaαdoαfile
C02838 02667	ifα
C02839 02668	youα
C02840 02669	hadα
C02841 02670	itα
C02842 02671	rememberα
C02843 02672	moreα
C02844 02673	thanα
C02845 02674	oneα
C02846 02675	earlierα
C02847 02676	location,α
C02848 02677	itαisn'tαsupportedαwhatαthisαcommand
C02849 02678	toα
C02850 02679	examineα
C02851 02680	yourα
C02852 02681	outputα
C02853 02682	fileα
C02854 02683	accordingα
C02855 02684	toα
C02856 02685	howα
C02857 02686	theα
C02858 02687	XGPα
C02859 02688	serviceα
C02860 02689	parsesα
C02861 02690	it,¬∂α
C02862 02691	Rα
C02863 02692	XGPTYP¬β.
C02864 02693	∞¬∂SRCCOM¬βα
C02865 02694	,¬βIfα
C02866 02695	MISSEDα
C02867 02696	IT.¬βα_thenα
C02868 02697	tryα
C02869 02698	appendingα
C02870 02699	toα
C02871 02700	the
C02872 02701	J¬βendα
C02873 02702	XSPOOL¬βα
C02874 02703	commandα
C02875 02704	theα
C02876 02705	switch¬∂α
C02877 02706	/NTNODE=31¬β,α
C02878 02707	thenα
C02879 02708	ifα
C02880 02709	itα
C02881 02710	stillα
C02882 02711	doesn'tα
C02883 02712	workα
C02884 02713	discussα
C02885 02714	itα
C02886 02715	withα
C02887 02716	RWG
C02888 02717	h¬βorα
C02889 02718	α
C02890 02719	α
C02891 02720	wereα
C02892 02721	implemented,α
C02893 02722	theα
C02894 02723	bad
C02895 02724	α⊂1¬∂5¬βα⊂and¬
C02896 02725	α⊂1¬∂6¬βα⊂willα⊂give
C02897 02726	data,α
C02898 02727	butα
C02899 02728	ifα
C02900 02729	youα
C02901 02730	useα
C02902 02731	the¬
C02903 02732	α
C02904 02733	1¬∂⊂'20¬βαswitchαyouαtakeαyourαchancesα--αsomedayαtheαcodeαmayαbe
C02905 02734	↓ 	∞¬α 28↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C02906 02735	--α
C02907 02736	Everywhere,α
C02908 02737	exceptα
C02909 02738	atα
C02910 02739	theα
C02911 02740	startα
C02912 02741	ofα
C02913 02742	theα
C02914 02743	top-levelα
C02915 02744	file,α
C02916 02745	POXα
C02917 02746	readsα
C02918 02747	charactersα
C02919 02748	inα
C02920 02749	theα
C02921 02750	normal
C02922 02751	decodeable.α_Thisα
C02923 02752	isα
C02924 02753	why,α
C02925 02754	forα
C02926 02755	example,α
C02927 02756	theα
C02928 02757	string
C02929 02758	11¬∂!FOO¬β,α
C02930 02759	leftα
C02931 02760	context,α
C02932 02761	isα
C02933 02762	parsedα
C02934 02763	asα
C02935 02764	[quoteα
C02936 02765	theα
C02937 02766	escapeα
C02938 02767	character,α
C02939 02768	thenα
C02940 02769	outputα
C02941 02770	the
C02942 02771	a
C02943 02772	initializationα
C02944 02773	parserα
C02945 02774	isα
C02946 02775	employed
C02947 02776	theα
C02948 02777	firstα
C02949 02778	charactersα
C02950 02779	andα
C02951 02780	whatα
C02952 02781	happensα(hereα"∀"αmeansαanyαcharacterαnotαmentionedαpreviously
C02953 02782	directoryα
C02954 02783	--α
C02955 02784	skipsα
C02956 02785	everythingα
C02957 02786	untilα
C02958 02787	ASCIIα
C02959 02788	'014α
C02960 02789	(Formα
C02961 02790	Feed)α
C02962 02791	isα
C02963 02792	seen,
C02964 02793	--α
C02965 02794	assumesα
C02966 02795	thisα
C02967 02796	isα
C02968 02797	aα
C02969 02798	"changeα
C02970 02799	theα
C02971 02800	escapeαcharacter"αcommandα--αjumpsαintoαtheαmiddleαofαthe
C02972 02801	1¬∂|¬¬<CH>¬βα
C02973 02802	andα
C02974 02803	allα
C02975 02804	newα
C02976 02805	filesα
C02977 02806	should
C02978 02807	α
C02979 02808	theα
C02980 02809	simulator,α
C02981 02810	defineα
C02982 02811	two
C02983 02812	andα
C02984 02813	suppressαthe¬¬α<CR><LF>¬βαatαtheαendαofαtheαlineα--αNoteαthatαbecauseαmostαusersαofαPOXαprefer
C02985 02814	yourα
C02986 02815	fileα
C02987 02816	with¬∂α
C02988 02817	\|¬
C02989 02818	1¬βα
C02990 02819	(where¬
C02991 02820	α
C02992 02821	1¬βα
C02993 02822	denotesα
C02994 02823	yourα
C02995 02824	local
C02996 02825	character)α
C02997 02826	andα
C02998 02827	put¬
C02999 02828	α
C03000 02829	1¬∂|\¬βαatαtheαveryαendαofαtheαfile.α--αNoteαthatαthisαdoesαnotαapplyαtoαlibraries
C03001 02830	α∂1¬∂|¬βα∞commandα∞isα∞currentlyα∞ignored,α∞andα∞youα∞shouldα∞avoidα∞changingα∞theα∞brick
C03002 02831	aα
C03003 02832	bareα
C03004 02833	(out-of-syntax)α
C03005 02834	occurrenceα
C03006 02835	ofα
C03007 02836	theα
C03008 02837	escapeα
C03009 02838	characterα
C03010 02839	forα
C03011 02840	purposeα
C03012 02841	of
C03013 02842	commandα
C03014 02843	--α
C03015 02844	jumpsα
C03016 02845	into
C03017 02846	α
C03018 02847	α⊂1¬∂¬βα⊂commandα⊂(don'tα∂relyα∂onα∂this,α∂itα∂isα∂incorrect)α∂--α∂ignore
C03019 02848	--α
C03020 02849	assumesα
C03021 02850	theα
C03022 02851	firstα
C03023 02852	isα
C03024 02853	theα
C03025 02854	escapeα
C03026 02855	characterα
C03027 02856	andα
C03028 02857	thatα
C03029 02858	theαuserαisαconfusedαaboutαwhatαtoαdo
C03030 02859	loopα
C03031 02860	justα
C03032 02861	afterα
C03033 02862	aα
C03034 02863	characterα
C03035 02864	hasα
C03036 02865	beenα
C03037 02866	read,α
C03038 02867	toα
C03039 02868	beα
C03040 02869	ableα
C03041 02870	toα
C03042 02871	actα
C03043 02872	upon
C03044 02873	theα
C03045 02874	brickα
C03046 02875	character,α
C03047 02876	anα
C03048 02877	errorα
C03049 02878	willα
C03050 02879	beα
C03051 02880	generatedα
C03052 02881	becauseα
C03053 02882	POXα
C03054 02883	will
C03055 02884	α
C03056 02885	α
C03057 02886	α
C03058 02887	theα
C03059 02888	inputα
C03060 02889	fileα
C03061 02890	originally,α
C03062 02891	syntaxα
C03063 02892	canα
C03064 02893	beα
C03065 02894	alteredα
C03066 02895	ifα
C03067 02896	theαbodyαofαaαmacroαbeginsαbutαdoesαnotαcomplete
C03068 02897	sequence.α_Thusα
C03069 02898	theα
C03070 02899	definition¬
C03071 02900	α
C03072 02901	1¬∂∞FOO[¬
C03073 02902	1¬∂oBIGMESS{4]¬βα
C03074 02903	willα
C03075 02904	setα
C03076 02905	itα
C03077 02906	upα
C03078 02907	soα
C03079 02908	that¬
C03080 02909	α
C03081 02910	1¬∂!FOO¬βα
C03082 02911	will
C03083 02912	4)α
C03084 02913	--αInαnormalαmode,αlettingαtheαsystemαdo¬¬α<LF>¬βαitselfαorαsimulatingαwhatαitαdoes,αsubscriptsαetc.
C03085 02914	≥¬βoverlap.α≡Ifα∂theα∂systemα∂isα∂doing¬¬α∂<LF>¬β'sα∂allα∂byα∂itselfα∞(theα∞onlyα∞modeα∞currentlyα∞implemented),α∞theα∞POX
C03086 02915	¬βprogramα
C03087 02916	vaguestα
C03088 02917	ideaα
C03089 02918	whereα
C03090 02919	onα
C03091 02920	theα
C03092 02921	pageα
C03093 02922	theα
C03094 02923	currentα
C03095 02924	lineα
C03096 02925	ofα
C03097 02926	textα
C03098 02927	willα
C03099 02928	beα
C03100 02929	locatedα
C03101 02930	whenα
C03102 02931	the
C03103 02932	Y¬βsystemαgetsαaroundαtoαputtingαtheαoutputαontoαtheα
C03104 02933	w¬βwouldα∞do,α∞thenα∞POXα
C03105 02934	textα
C03106 02935	linesα
C03107 02936	areα
C03108 02937	causedα
C03109 02938	toα
C03110 02939	beα
C03111 02940	evenly-spacedα
C03112 02941	evenα
C03113 02942	if
C03114 02943	shouldα
C03115 02944	beα
C03116 02945	(Y
C03117 02946	α∞1¬∂M¬βα∞commandα∞merelyα∞mapsα∞fromα∞theα∞logicalα∞font
C03118 02947	requestedα
C03119 02948	isα
C03120 02949	new
C03121 02950	↓ 	∞¬α 29↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C03122 02951	theα
C03123 02952	logicalα
C03124 02953	fontα
C03125 02954	numberα
C03126 02955	isα
C03127 02956	alreadyαinαuse,αitαfindsαaαslot,αloadsαtheαfont,αandαmapsαtheαfontαnumber.
C03128 02957	fontα
C03129 02958	numbersα
C03130 02959	youα
C03131 02960	canα
C03132 02961	haveα
C03133 02962	moreα
C03134 02963	thanα
C03135 02964	16
C03136 02965	--α
C03137 02966	Forα
C03138 02967	RAIDαexperts,αnoteαthatαatαPASACT+6αisαaαCAIα(NO-OP)αthatαisαexecutedαonlyαwhenαPOX
C03139 02968	mind,α
C03140 02969	Iα
C03141 02970	mightα
C03142 02971	asα
C03143 02972	wellα
C03144 02973	mentionα
C03145 02974	someα
C03146 02975	majorα
C03147 02976	deficienciesα
C03148 02977	ofα
C03149 02978	POX.
C03150 02979	isα
C03151 02980	noα
C03152 02981	wayα
C03153 02982	toα
C03154 02983	doα
C03155 02984	automaticα
C03156 02985	footnotesα
C03157 02986	orα
C03158 02987	indexesα
C03159 02988	orα
C03160 02989	cross-references.α_Syntaxα
C03161 02990	isα
C03162 02991	mostlyαstrange.
C03163 02992	α
C03164 02993	∧↑π,β?wα∧←π≡l('
C03165 02994	{m↓¬α∧}¬k|*↓∃α∧ε+α↓0∧ε+{-uβ∧ε≠{S}α∧π[α∩↓∞α∧
C03166 02995	¬||∂↓
C03167 02996	α∧
C03168 02997	∧ε$	*3¬∧
C03169 02998	∧ε$x#Z∧∧
C03170 02999	ε¬↑|F↓~α∧
C03171 03000	πε7pUε8∧
C03172 03001	πε7{∀mβ∧
C03173 03002	
C03174 03003	εD6U
C03175 03004	≠∧
C03176 03005	
C03177 03006	εDzmeβ∧
C03178 03007
C03179 03008	∃¬?|}↓%α∧
C03180 03009	_πh↓N↓∃α∧
C03181 03010	≡ε
C03182 03011	>'ε∧
C03183 03012	≡ε
C03184 03013	y&`β∧
C03185 03014	 εX≠
C03186 03015	 εXz6Vβ∧
C03187 03016	)¬!}0↓/α∧
C03188 03017	1πN↓∧α∧
C03189 03018	4πX7↓∩α∧
C03190 03019	6πm↓∃↓↔α∧
C03191 03020	7π≠]tα∧
C03192 03021	:εd∪≤	∧
C03193 03022	:¬w∞~≥π∧
C03194 03023	:εdz≤Jβ∧
C03195 03024	:¬wzλcβ∧
C03196 03025	?πr↓∨α∧
C03197 03026	A¬	}]↓5α∧
C03198 03027	Eε|]dα∧
C03199 03028	Oλ	}t↓+α∧
C03200 03029	Uλ∀}i↓0α∧
C03201 03030	Vεi∂
C03202 03031	∨π∧
C03203 03032	Vεiz$Aβ∧
C03204 03033	Vπig↓∃α∧
C03205 03034	Wε↑PUα∧
C03206 03035	Y¬j⊂Eλ∧
C03207 03036	Y¬jzTbβ∧
C03208 03037	↑∧v}	↓8α∧
C03209 03038	eλ_}Q↓2α∧
C03210 03039	oεE≡Iα∧
C03211 03040	oλ!}?↓7α∧
C03212 03041	q¬BNeα∧
C03213 03042	t¬3Vlα∧
C03214 03043	t¬#Ytα∧
C03215 03044	uπ↑<↓⊂α∧
C03216 03045	vεg
C03217 03046	vεgzY:β∧
C03218 03047	v¬`PUα∧
C03219 03048	y¬b⊃∞∩λ∧
C03220 03049	y¬b{∞↑β∧
C03221 03050	|¬∪lzα∧
C03222 03051	}∧k}2↓5α∧
C03223 03052	λ"})↓7α∧
C03224 03053	∧t↓¬α∧
C03225 03054	α∧
C03226 03055	U6α∧
C03227 03056	k∪ε∧
C03228 03057	∧
C03229 03058	↓∃α∧
C03230 03059	≡ε∧∞↓¬tMPα∧∞↓¬%↑xα∧∞α¬aXYα∧∞¬π`z,eβ∧∞¬¬Cchα∧∞¬πo|X↓≡α∧∞πε$z 9β∧∞λ¬Rk←α∧∞λ¬2noα∧∞	ε~
C03231 03060	]!ε∧∞∨ε6zλBβ∧∞"εBz!Gβ∧∞&π\yOcβ∧∞'ε	∂≡∃π∧∞*π5{i↓↓α∧∞.∧f∞J∨π∧∞0ε[z=Tβ∧∞3∧"αK↓¬α∧∞5π{&qβ∧∞6πUy⊂`β∧∞6εwznbβ∧∞A∧Z∂  π∧∞D¬s∂j_λ∧∞GπRxX↑∧∧∞M∧\∩$≤	∧∞N∧+β'yα∧∞Q¬l⊂∀→λ∧∞VπGxεY∧∧∞[¬Z
C03232 03061	∧∞m¬=≤)¬∧∞t∧R¬\β∧∞w¬.
C03233 03062	↓ 	∞¬α 30↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C03237 03063		¬∂14↓ αH41 123456↓ ∧HLOAD QREGAC WITH PARAMETER FROM OVERLAY <<5,6 NOT WORKING>>
C03238 03064	'¬∂24↓ αH42 `↓ ∧H[TEMPORARY] SET UP VERSION FLAGS <<NOT RECOMMENDED>>
C03239 03065	E¬∂14↓ αH43 &↓ ∧HCOMBINE SEVERAL OVERLAYS INTO ONE, WITH OFFSETS EACH
C03240 03066	c¬∂15↓ αH44 ∂↓ ∧HRENAME OVERLAY IN COMPLICATED WAY
C03242 03067	↓ 	∞¬α 31↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
C03246 03068	∞¬∂13x↓ αHX N1↓ βHY 27↓ ∧HZ↓ ¬H[ 57↓ εH\ 16↓ πH] 60↓ λH↑ 62*↓ 	H← 16
C03247 03069	¬∂14x↓ αH` 42↓ βHa 75↓ ∧Hb 67↓ ¬Hc 13↓ εHd↓ πHe 67↓ λHf 06↓ 	Hg 74
C03248 03070	h¬∂15x↓ αHh↓ βHi↓ ∧Hj 11↓ ¬Hk↓ εHl↓ πHm 72↓ λHn 53↓ 	Ho 37
C03249 03071	useα
C03250 03072	theα
C03251 03073	aboveα
C03252 03074	tableα
C03253 03075	toα
C03254 03076	locateα
C03255 03077	theα
C03256 03078	commandα
C03257 03079	correspondingα
C03258 03080	toα
C03259 03081	aαparticularαcharacter,αlookαup
C03260 03082	↓ βfβ↓H¬PROTOTYPE OVERLAY XEROGRAPHICS -- WRITEUP
C03263 03083	↓↓H↓
C03264 03084	ε↓H↓
C03265 03085	∞¬Special-feature bits↓ @24
C03266 03086	¬Batch 0↓ @25
C03267 03087	h¬Batch 1↓ @26
C03269 03088
C03270 ENDMK
C⊗;
/TMAR=200/PMAR=1998/BMAR=2
/USET=295
↓ ¬εβ↓H¬P¬βrototype¬ O¬βverlay¬ X¬βerographics
↓ ¬
β↓k¬β(name suggested by R.W.Gosper)
↓ β;βα	¬βBy Robert Elton Maas, with revisions by Ralph E. Gorin and R.E.M.
↓ ∧8βα'¬α(POX writeup, last edited 1981 JUN 2  20:27)
↓ α_βαc¬βPOXα
isα
aα
programαforαmakingαdocumentsαthatαtakeαadvantageαofαtheαspecialαfeaturesαavailableαon
↓ ↓Hββ↓¬βtheαXeroxαGraphicsαPrinterα(XGP).α⊗TheαspecialαfeaturesαthatαbothαPOXα
andα
PUBα
provideα
areα
mainlyα
font
↓ ↓Hββ∨¬βswitching,α⊂textα⊂justificationα⊂andα∂automaticα∂"everyα∂page"α∂actionsα∂suchα∂asα∂pageα∂numbering.α≡POXα∂also
↓ ↓Hββ=¬βprovidesα∞vectors,α∞positioningα∞ofα∞textα∞etc.α∞toα∞anα∞accuracyα∞ofα
1/200α
inch,α
compositionα
ofα
textα
etc.α
into
↓ ↓Hββ[¬β"overlays"α
whichα
canα
beα
copiedα
andα
processedα
withoutα
losingαtheαrelativeαpositionsαofαtheαcomponents
↓ ↓Hββy¬β(somewhatαlikeαsetsαinαSUDS,αtheαHelliwellαdrawingαprogram).α⊗POXαdoesα
notα
yetα
provideα
textα
responses
↓ ↓Hβ∧↔¬βorα⊃footnotes.α"Itα⊃isα⊃possibleα⊃toα⊂setα⊂upα⊂cross-referencesα⊂orα⊂indexes/contentsα⊂byα⊂meansα⊂ofα⊂macros,
↓ ↓Hβ∧5¬βprovidingα
thatα
thereα
areα
noα
forwardα
referencesα
(i.e.,α
everythingα
isα
definedα
beforeα
itα
isα
usedα
--α
POXαis
↓ ↓Hβ∧S¬βone-passα
only).α~Neitherα
POXα
norα
PUBα
canα
yetα
beα
usedα
interactivelyα
likeα
GEOMEDα
andα
SUDS,α
butα
itα
is
↓ ↓Hβ∧q¬βpossibleα
toα
useα
XGPSYNα
toα
viewα
aα
documentα
onα
theα
videoα
synthesizerα
beforeα
makingα
hardcopyαonαthe
↓ ↓Hβ¬∂¬βXGP.
↓ α_β¬-¬βWhenαbothαPOXαandαPUBαprovideαtheαdesiredαfeatures,αi.e.,αnoneαofαtheαfeaturesαthatαonlyα
oneα
of
↓ ↓Hβ¬K¬βthemα∪hasα∪areα∪needed,α∪POXα∪isα∪usuallyα∪preferredα∪becauseα∪ofα∪itsα∪greaterα∪speed.α%Forα∩example,α∩a
↓ ↓Hβ¬i¬βbenchmarkα∞textα∞consistingα∞ofα∞10kα∞ofα∞fully-justifiedα∞textα∞tookα∞42.5α∞secondsα
ofα
runtimeα
usingα
PUB,α
4.5
↓ ↓Hβεπ¬βsecondsαusingαPOXαwithoutαtheαsimulator,α
andα
10.9α
secondsα
usingα
POXα
withα
theα
simulatorα
(seeα
belowα
for
↓ ↓Hβε%¬βexplanationα
ofα
theα
simulator).
↓ α_βεC¬βPOXα
hasα
atα
leastα
oneα
intractableα
bugα
--α
thisα
bugα
andα
someα
othersα
recentlyα
fixedα
areα
listedα
inα
a
↓ ↓Hβεa¬βlaterαsectionαofαthisαwriteupα--αreferencesαtoαtheseαbugsαareαmadeαfromαvariousαplacesαinα
thisα
writeup,
↓ ↓Hβε¬βinαtheαformatα"¬αseeαbug#n¬β"αwhereαnαisαtheαnumberαofαtheαbugαinαthatαlist.α⊗Usersα
shouldα
reportα
anyα
bugs
↓ ↓Hβπ≥¬βtheyα
findα
thatα
areα
notα
inα
thatα
list,α
orαwhichαareαlistedαasα"fixed".α⊗Errorsαinαthisαwriteupαshouldαalsoαbe
↓ ↓Hβπ;¬βreportedα
beforeα
tooα
manyα
unwaryα
usersα
seeα
themα
andα
expectα
POXα
toα
doα
thingsα
itα
can'tα
do.
↓ α_βπw¬βPOXα
takesα
aα
fileα
asα
inputα
andα
producesα
anα
outputα
fileα
thatα
isα
suitableα
forα
spoolingα
withα
theα
XGP
↓ ↓Hβλ∃¬βspoolerα
(¬∂XSPOOL¬βα
command).α_Theα
inputα
fileα
containsα
instructionsα
toα
POXα
andα
theα
textα
ofα
theα
document.
↓ ↓Hβλ3¬βPOXα∂takesα∂characterα∂sequencesα∞asα∞commands.α≤Eachα∞commandα∞sequenceα∞isα∞precededα∞byα∞aα∞character,
↓ ↓HβλQ¬βcalledα∩the¬αα∩Brickα∩Character¬β.α"Theα⊃firstα⊃characterα⊃inα⊃theα⊃fileα⊃(ignoringα⊃TVα⊃directoriesα⊃andα⊃SOSα⊃line
↓ ↓Hβλo¬βnumbers)α
isα
takenα
byα
POXα
asα
theα
escapeα
characterα
(Seeα
noteα
1).α~Thus,α
theα
userα
getsα
toα
specifyα
the
↓ ↓Hβ	
¬βescapeα
character.α~Theα
escapeα
characterα
canα
beα
arbitrary,α
butα
reasonα
dictatesα
thatα
itα
shouldα
beα
some
↓ ↓Hβ	+¬βcharacterα∂thatα∂appearsα∂infrequentlyα∂(orα∂notα∂atα∂all)α∂inα∂theα∂textα∂ofα∂theα∂document.α≡Theα∂mostα∂popular
↓ ↓Hβ	G¬βchoicesα∂forα∂theα∂escapeα∂characterα∂areα∂\α∂_α∂andα∂$.α≡Inα∂theα∞remainderα∞ofα∞thisα∞document,α∞theα∞symbol¬
α∞1
↓ ↓Hβ	g¬β(pronouncedα≤"brick"α≤--α≤youα≤won'tα≤findα≤itα≤onα≤yourα≤keyboardα≤--α≤it'sα≠ASCIIα≠061α≠inα≠font
↓ ↓Hβ
¬¬βPOXBRK.FNT[CSP,DOC]α
ifα
youα
reallyα
wantα
toα
knowα
howα
Iα
generatedα
itα
inα
thisα
writeup)α
representsα
your
↓ ↓Hβ
#¬βcurrentα∞Escapeα∞Character,α
whateverα
itα
mayα
beα
atα
theα
moment;α
however,α
inα
someα
examplesα
belowα
the
↓ ↓Hβ
A¬βactualα
escapeα
characterα
willα
beα
shownα
ratherα
thanα
theα
brickα
symbol.
↓ α_β
←¬βIαhaven'tαreallyαdecidedαwhatαtoα
callα
theseα
commands,α
soα
untilα
Iα
makeα
aα
decisionα
youα
mayα
findα
that
↓ ↓Hβ
}¬βatαsomeαplacesαinαthisαwriteupαtheyαareαcalledα"escapeαcommands",α
atα
otherα
placesα
"brickα
commands"α
or
↓ ↓Hβ≠¬β"POXα∞commands".α~Theα
commandsα
theα
XGPα
understands,α
beginningα
withα
anα
ASCIIα
177α
whichα
isα
rubout,
↓ ↓Hβ9¬βhaveα∞entirelyα∞differentα∞syntaxα∞evenα∞forα∞commandsα∞thatα∞performα∞almostα∞theα∞sameα∞functionα∞asα
aα
brick
↓ ↓HβW¬βcommand.α⊗Theseαareαreferredα
toα
asα
"XGPα
escapeα
sequences"α
orα
"rubout-styleα
commands"α
toα
distinguish
↓ ↓Hβu¬βthemα∞fromα∞brickα∞commmands.α≤Theseα∞XGPα∞escapeα
sequencesα
areα
normallyα
presentα
onlyα
inα
theα
output
↓ ↓Hβ
∪¬βfromα⊂POXα⊂andα⊂PUB,α⊂exceptα⊂whenα⊂POXα⊂isα⊂usedα⊂asα⊂post-processorα∂forα∂someα∂otherα∂program,α∂suchα∂as
↓ ↓Hβ
1¬βXLITER.α⊗Forαthisαandαsimilarαuse,αPOXαcanαacceptαcertainαsystemαXGPαescapeαsequencesαatαsomeα
places
↓ ↓Hβ
O¬βinα
theαinputαfile.¬¬α⊗WhatαPOXαdoesαisαtoαconvertαtheseαescapeαsequencesαintoαtheαequivalentαbrickαcommandαuponαinput,αthenαto
↓ ↓Hβ
q¬¬processα∞theα∞brickα
commandα
inα
theα
usualα
way.α~Thusα
theα
XLITERα
programα
canα
transliterateα
phonemesα
intoα
cyrillicα
charactersα
with
↓ ↓Hβ
∂¬¬rubout-styleα
fontα
selectsα
(toα
allowα
directα
listingα
onα
theα
XGPα
ifα
desired),α
andα
POXα
canα
treatα
theα
cyrillicα
asα
text,α
treatα
theα
font-selects
↓ ↓Hβ
'¬¬generatedα	inα	theα	processα	ofα	transliterationα	as¬
α	1¬∂F¬¬α	commands,α	andα	processα	otherα	brickα	commandsαλthatαλwereαλinαλtheαλoriginalαλtextαλfileαλ(that
↓ ↓Hβ
K¬¬wereα
passed-as-isα
byα
XLITER).
↓ α_β∞β¬βToα
runα
POX,α
useα
theα
systemα
command¬∂α
Rα
POX¬βα
(or¬∂α
RUα
POX[1,REM]¬βα
ifα
youα
wantα
toα
useα
theα
latest
↓ ↓Hβ∞!¬βexperimentalα∩versionα∩ofα∩POXα∩ifα∩oneα∩exists).α$POXα∩wantsα⊃toα⊃seeα⊃aα⊃commandα⊃ofα⊃theα⊃form:¬¬α⊃<OUTPUT
↓ ↓Hβ∞?¬¬FILE>¬∂←¬¬<INPUTα
FILE>¬β.α_Ifα
the¬¬α
<OUTPUTα
FILE>¬βα
termα
isα
omittedα
(theα
arrowα
isα
thenα
optional)α
thenα
theα
outputα
file
↓ ↓Hβ∞]¬βwillα
haveα
theα
sameα
nameα
asα
theα
inputα
file,α
andα
"¬∂.XGP¬β"α
extension.α∀Ifα
onlyα
theα
extensionα
ofα
theα
outputα
file
↓ ↓Hβ∞{¬βisα∂omitted,α∂"¬∂.XGP¬β"α∞willα∞beα∞used.α≤Ifα∞theα∞extensionα∞ofα∞theα∞inputα∞fileα∞isα∞omittedα∞andα∞theα∞periodα∞isα∞also
↓ ↓Hβ∂→¬βomitted,α
"¬∂.POX¬β"α
isα
assumed,α
andα
ifα
thatα
fileα
isn'tα
foundα
thenα
nullα
extensionα
isα
tried.α_Ifα
theαextensionαis
↓ ↓Hβ∂7¬βomittedα
butα
theα
periodα
isα
retained,α
onlyα
theα
nullα
extensionα
isα
tried.α_--α
Alternately,α
insteadα
ofα
doing¬∂α
R
↓ 	∃¬α 1↓ βxβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∃¬α 2↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬∂POX¬β,α
theαsystemαcommand¬∂αPOX¬βαmayαbeαfollowedαbyαthe¬¬α<OUTPUTαFILE>¬∂←¬¬<INPUTαFILE>¬βαsyntaxαallαonαoneαline.
↓ ↓Hβ↓f¬β--α
Laterα
ifα
youα
haven'tα
loggedαoutαandαhaveαtheαsameαalias,αyouαcanαmakeαPOXαuseαtheαsameαcommand,
↓ ↓Hβα∧¬βwithoutα⊂retypingα⊂it,α⊂byα⊂startingα∂POXα∂atα∂theα∂RPGα∂startingα∂address.α≡Forα∂example,α∂youα∂canα∂sayα∂"¬∂GET
↓ ↓Hβα"¬∂SYS:POX¬β"α
thenα
sayα
"¬∂Sα
+1¬β",α
orα
fromα
Eα
youα
canα
giveα
theα
extend-modeα
commandα
"¬∂RUα
POX[1,3]¬β".
↓ α_βα@¬βIfα
allα
isα
wellα
withα
theα
inputα
file,α
POXα
willα
runα
andα
produceα
anα
outputα
fileα
suitableα
for¬∂αXSPOOL¬βing.
↓ ↓Hβα↑¬βIfαyouαareαatαaαlocalαdisplay,αPOXα
willα
loadα
theα
appropriate¬∂α
XSPOOL¬βα
commandα
intoα
yourα
lineα
editor,α
soα
all
↓ ↓Hβα|¬βyouα
haveα
toα
doα
isα
typeα
returnα
toα
spoolα
theα
file.
↓ ¬;ββ3¬Sample POX input file
↓ βnββQ¬(I assume you will have your files in E/TV format)
↓ ↓Hβ∧∩¬∂COMMENT ⊗   VALID 00002 PAGES
↓ ↓Hβ∧0¬∂C REC  PAGE   DESCRIPTION
↓ ↓Hβ∧N¬∂C00001 00001
↓ ↓Hβ∧l¬∂C00002 00002↓ βH\|\\M0FIX25\M1NGR25\ This is a comment, after the brick-semicolon
↓ ↓Hβ¬
¶C00004 ENDMK
↓ ↓Hβ¬(¬∂C⊗;
↓ ∧iβ¬J¬¬<FORMFEED> i.e., page mark after directory page
↓ ↓Hβ¬d¬∂\|\\M0FIX25;\M1NGR25;\; This is a comment, after the brick-semicolon
↓ ↓Hβεα¬∂\; Font #0 is here in case title pages needed -- If we
↓ ↓Hβε ¬∂\; don't explicitly specify it here, the system will invent a font#0.
↓ ↓Hβε>¬∂\←L\+=100;\→L\; Move left margin in by 1/2 inch
↓ ↓Hβε\¬∂\F1\CTITLE OF THIS DOCUMENT IS HERE
↓ ↓Hβπ_¬∂\J↓ αHThis is a sample document, with justified text, and a centered
↓ ↓Hβπ6¬∂title.  It demonstrates to the person using POX for the first time,
↓ ↓HβπT¬∂just what is involved in a simple POX manuscript (borrowing terminology
↓ ↓Hβπr¬∂from the PUB manual, in which a "manuscript" is the uncompiled form
↓ ↓Hβλ⊂¬∂you see here and a "document" is the compiled file all
↓ ↓Hβλ.¬∂ready to output to some device such as lineprinter or XGP).  If you
↓ ↓HβλL¬∂have any doubt what the output on the XGP would look like if
↓ ↓Hβλj¬∂this document were actually compiled etc., I suggest you create
↓ ↓Hβ	λ¬∂a text file with E or SOS and copy this page (after the formfeed
↓ ↓Hβ	&¬∂above, until the end-of-file location below), and actually
↓ ↓Hβ	D¬∂compile it and XSPOOL it.\.
↓ ε
β	f¬¬<END OF FILE>
↓ βZβ
→¬THIS WRITEUP -- ORGANIZATION, MODES, NOTATION
↓ α_β
<¬βEachα
sectionα
inα
thisα
writeupα
thatα
describesα
brick-commandsα
consistsα
ofα
theα
following:α_Summary
↓ ↓Hβ
Z¬βofαwhatαit'sαallαusedαfor,αsyntaxα
ofα
eachα
command,α
theα
correspondingα
descriptionsα
ofα
whatα
functionα
each
↓ ↓Hβ
x¬βcommandαperforms,αexamplesαofαtheαuseαofαtheαcommandsαinαthisαwriteupα
itselfα
withα
generalα
references
↓ ↓Hβ⊗¬βasα⊃toα⊃whereα⊃toα⊃lookα⊃toα⊃seeα⊃theα⊃effectα⊂generated,α⊂additionalα⊂examplesα⊂ofα⊂useα⊂(inputα⊂textα⊂followed
↓ ↓Hβ4¬βimmediatelyα
byα
theα
effectα
generatedα
inα
output).
↓ α_βp¬βSomeα⊂brick-commandsα⊂willα⊂putα∂theα∂commandα∂scannerα∂inα∂aα∂specialα∂modeα∂untilα∂suchα∂timeα∂asα∂an
↓ ↓Hβ
∞¬βappropriateα
"getα
outα
ofα
thisα
mode"α
characterα
orα
brick-commandα
isα
seen,α
atα
whichα
timeαitαwillαreturnαto
↓ ↓Hβ
,¬βitsαpreviousαmode.α⊗Initiallyα(afterαeatingαtheαdirectoryαpageαandαtheαfirstαcharacterαorαtwoαofα
theα
input
↓ ↓Hβ
J¬βfile)α
theα
commandα
scannerα
isα
inα
"PASS-AS-IS"α
modeα
whichα
meansα
thatα
carriage-returnα
putsα
youα
atα
the
↓ ↓Hβ
h¬βleftα∞margin,α∞linefeedα∞movesα∞downα∞toα∞theα∞nextα∞line,α∞formfeedα
completesα
theα
pageα
andα
cutsα
theα
paper,
↓ ↓Hβ
ε¬βbrickα
causesα
aα
commandα
toα
beα
expected,α
andα
allα
otherα
charactersα
areα
copiedα
toα
theα
outputα
fileα
inα
the
↓ ↓Hβ
$¬βcurrently-selectedα
font.α_Theα
effectα
isα
thatα
textα
isα
alignedα
againstα
theα
leftα
marginαunlessαyouαexplicitly
↓ ↓Hβ
B¬βdoα
aα
column-selectα
toα
causeα
itα
toα
beα
putα
elsewhere.
↓ α_β
`¬βTheα∞otherα∞modesα∞youα∞canα∞getα∞intoα
areα
justify,α
centerify/rightify,α
copyα
textα
intoα
aα
macroα
body,
↓ ↓Hβ
}¬βevaluateα∂andα∂copyα∂textα∂intoα∂anα∂overlayα∂body,α∂evaluateα∂andα∂copyα∂textα∂intoα∂aα∞macroα∞argumentα∞body,
↓ ↓Hβ∞≤¬βignoreα
untilα
linefeed,α
ignoreα
untilα
formfeed,α
ignoreα
nonprintingα
charactersα
untilα
semicolon,α
andα
parseα
a
↓ ↓Hβ∞:¬βbrickα∞command.α≤Beforeα∞eachα∞commandα∞descriptionα∞isα∞aα∞listα∞ofα∞whichα∞modesα∞youα
canα
beα
inα
whenα
the
↓ ↓Hβ∞X¬βcommandα
isα
scanned.α_Theα
completeα
listα
isα
(Uα
Jα
CRα
oα
A)α
whichα
referα
toα
Unjustifiedα
(normalα
pass-as-is),
↓ ↓Hβ∞t¬βJustify,α∂Center/Rightify,α∂atomicα∂textα∂Overlayα∂(¬
1¬∂o¬βα∂command)α∂andα∂Argumentα∂toα∂aα∂macroα∂orα∂textα∂toα∂an
↓ ↓Hβ∂∀¬βalternateα
outputα
file,α
respectivelyα
(inα
theα
otherα
modes,α
namelyα
defineα
theα
bodyα
ofα
aα
macro,α
andα
parse
↓ ↓Hβ∂2¬βvariousα
commands,α
theα
brickα
characterα
isα
treatedα
asα
textα
ratherα
thanα
asα
initiatingα
aα
brick-command).
↓ 	∃¬α 2↓ βxβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∃¬α 3↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ α_β↓f¬βManyα⊂placesα⊂inα⊂thisα⊂writeupα⊂itα⊂isα⊂necessaryα⊂toα⊂showα⊂aα⊂stringα∂ofα∂textα∂thatα∂looksα∂asα∂muchα∂as
↓ ↓Hβα∧¬βpossibleα
likeα
whatα
theα
userα
wouldα
seeα
whenα
editingα
hisα
sourceαdocument.α⊗(E.g.,αinαexamplesαofαhowαto
↓ ↓Hβα"¬βdoα
things,α
andαinαtheαsyntaxαdescriptionsαwhereαaαparticularαcharacterαoccursαasαpartαofαtheαcommand.)
↓ ↓Hβα@¬βForα∂thisα∂purposeα∂theα∂fontα∞FIX25α∞isα∞used,α∞whichα∞hasα∞fixed-widthα∞charactersα∞thatα∞lookα∞veryα∞muchα∞like
↓ ↓Hβα↑¬βthoseα⊗onα⊗localα⊗keyboardsα⊗andα⊗displaysα⊗andα⊗onα⊗ourα⊗line-printer.α*Hereα∃isα∃theα∃completeα∃7-bit
↓ ↓Hβα|¬βStanford-ASCIIα
characterα
setα
inα
thisα
font:
↓ ↓Hββ~¬∂↓αβ∧¬επ λ	


∞∂ ⊂⊃∩∪∀∃⊗↔ _→~≠≤≥≡∨  !"#$%&' ()*+,-./ 01234567 89:;<=>? 
↓ ↓Hββ8¬∂@ABCDEFG HIJKLMNO PQRSTUVW XYZ[\]↑← `abcdefg hijklmno pqrstuvw xyz{|}}
↓ ↓HββV¬βTheα
followingα
characters,α
however,α
don'tα
lookα
theα
sameα
onα
ourα
variousα
devices,α
andα
usuallyα
represent
↓ ↓Hββt¬βspecialα⊃functionsα⊃ratherα⊃thanα⊃normalα⊂text,α⊂andα⊂henceα⊂willα⊂beα⊂representedα⊂inα⊂aα⊂specialα⊂wayα⊂inα⊂this
↓ ↓Hβ∧∩¬βwriteup:
↓ ↓Hβ∧0¬βOCTAL↓ αKFIX25↓ βNIN THIS WRITEUP↓ ¬TCOMMENTS
↓ ↓Hβ∧N¬β000¬∂↓ αK¬β↓ ¬Tnull, ignored if occurs in source document
↓ ↓Hβ∧l¬β011¬∂↓ αK	¬¬↓ βN<TB>¬β↓ ¬T(horizontal) tab
↓ ↓Hβ¬
¬β012¬∂↓ αK
¬¬↓ βN<LF>¬β↓ ¬Tline (feed)
↓ ↓Hβ¬(¬β013¬∂↓ αK¬¬↓ βN<VT>¬β↓ ¬Tvertical-tab
↓ ↓Hβ¬F¬β014¬∂↓ αK
¬¬↓ βN<FF>¬β↓ ¬Tform (feed)
↓ ↓Hβ¬d¬β015¬∂↓ αK
¬¬↓ βN<CR>¬β↓ ¬T(carriage) return, always followed by ¬¬<LF>
↓ ↓Hβεα¬β040¬∂↓ αK ¬¬↓ βN<SP>¬β↓ ¬Tspace (bar), usually shown as actual space
↓ ↓Hβε ¬β177¬∂↓ αK¬β↓ ¬Trubout, doesn't occur in source-documents
↓ α_βε>¬βTheα
followingα
additionalα
BNF-styleα
syntacticalα
notationα
willα
beα
usedα
inα
thisα
paper:
↓ α_βε\¬¬<CH>¬βα
--α
anyα
singleα
ASCIIα
characterα
(representingα
dataα
toα
beα
copiedα
toα
output)
↓ α_βεz¬¬<N>¬βα∩--α⊃anyα⊃oneα⊃ofα⊃theseα⊃characters:¬∂α⊃0α⊃1α⊃2α⊃...α⊃9α⊃Aα⊃Bα⊃...α⊃F¬βα⊃(representingα⊃aα⊃logicalα⊃font
↓ ↓Hβπ_¬βnumberα
inα
IBMα
hexadecimalα
notation)
↓ α_βπ6¬¬<FONT>¬βα⊃--α⊃anyα⊃fontα⊃fileα⊃name,α⊃ifα⊃extensionα⊂andα⊂[p,p]α⊂areα⊂omitted,α⊂default¬∂α⊂.FNT[XGP,SYS]¬βα⊂is
↓ ↓HβπT¬βassumed
↓ α_βπr¬¬<NAME>¬βα∂--α∂anyα∂alphanumericα∂string,α∂usuallyα∂requiredα∂notα∂toα∂beα∂theα∂nullα∞stringα∞(anα∞identifier,α∞a
↓ ↓Hβλ⊂¬βnameα
ofα
anα
overlay,α
aα
macro,α
etc.)
↓ α_βλ.¬¬<OPEN>¬βα
--α
anyα
legalα
open-nestingα
character,α
suchα
as¬∂α
(α
[α
{α
<α
⊂¬β,α
orα
anyα
legalα
quotingα
character,
↓ ↓HβλL¬βsuchα
as¬∂α
"α
⊗α
↓α
/α
∂α
|
↓ α_βλj¬¬<CLOSE>¬βα∩--α∩theα∩matchingα∩close-nestingα∩character,α∩suchα∩as¬∂α∩)α∩]α∩}α∩>α∩⊃¬β,α∩orα∩theα⊃sameα⊃quoting
↓ ↓Hβ	λ¬βcharacter,α
suchα
as¬∂α
"α
⊗α
↓α
/α
∂α
|
↓ α_β	&¬¬<BODY>¬βα
--α
anyα
stringα
ofα
textα
notα
containingα
theα
quotingα
character,αorαcontainingαproperly-nested
↓ ↓Hβ	D¬βopenαandα
closeα
nestingα
charactersα
(noteα
thatα
allα
charactersα
areα
treatedα
asα
textα
exceptα
forα
theα
↓&particular↓)αβ
↓ ↓Hβ	b¬βquotingα
characterα
orα
nestingα
pairα
selectedα
inα
aα
particularα
instance,α
andα
specialα
charactersα
likeα
comma
↓ ↓Hβ
¬βetc.α
whichα
haveα
specialα
syntacticalα
meaning)α
--α
seeα
descriptionα
inα
commandsα
whereα
used
↓ α_β
≡¬¬<FILNAM>¬βα
--α
anyα
standardα
fileα
name,α
suchα
as¬∂α
SUDS.RPH[UP,DOC]¬β.
↓ ↓dβ
U¬BASIC COMMANDS --- FONT SELECTION, JUSTIFY, CENTERIFY/RIGHTIFY, IGNORE TEXT
↓ α_β
x¬βTheα∂purposeα∂ofα∂theseα∞commandsα∞isα∞toα∞selectα∞theα∞styleα∞andα∞sizeα∞ofα∞printingα∞(forα∞example,α∞font
↓ ↓Hβ⊗¬∂BDI25¬βα⊂isα⊂BODONI-ITALIC,α⊂25/200α⊂inchesα⊂high),α⊂toα⊂enterα∂andα∂exitα∂justifyα∂modeα∂(inα∂whichα∂theα∂textα∂is
↓ ↓Hβ4¬βmassagedα
soα
thatα
eachα
lineα
isα
asα
fullα
ofα
textα
asα
willα
fitα
andα
extraα
partial-spacesα
areα
insertedα
between
↓ ↓HβR¬βwordsα
toα
makeα
theα
marginsα
lineα
upα
exactly),α
toα
enterα
andα
exitα
rightifyα
modeα
(inα
whichα
textα
isα
aligned
↓ ↓Hβp¬βwithα⊃theα⊃right-marginα⊃butα⊃notα⊃modifiedα⊃inα⊃anyα⊃otherα⊃way),α⊂toα⊂enterα⊂andα⊂exitα⊂centerifyα⊂modeα⊂(like
↓ ↓Hβ
∞¬βpass-as-isα
andα
rightifyα
exceptα
eachα
lineα
isαcentered),αandαtoαignoreαportionsαofαtheαinputαtextαthatαyou
↓ ↓Hβ
,¬βdoα
notα
wantα
processed.
↓ ¬oβ
h¬βFONT SELECTION
↓ ↓Hβ
∧¬
1¬∂M¬¬<N><FONT>¬∂;¬β↓ β"(U)α⊂--α⊂causesα⊂theα⊂fontα⊂toα⊂beα⊂loadedα⊂intoα⊂poxα∂(andα∂laterα∂intoα∂theα∂systemα∂XGP
↓ β"β
$¬βservice),α
andα
selectsα
itα
nowα--αseeαnoteα5αandαbugα2α--αthisαisαtheαcommandαthat
↓ β"β
B¬βsetsαupαtheαcorrespondenceαbetweenαfontsαandαtheα
numbersα
youα
willα
useα
laterα
to
↓ β"β
`¬βselectα∞themα∞--α∞typeα∞toα∞theα∞system¬∂α
HELPα
FONT¬βα
toα
findα
outα
aboutα
fontsα
thatα
are
↓ β"β
}¬βavailableαandαhowαtoαperuseαthemα--αalwaysα
defineα
oneα
ofα
yourα
fontsα
with¬¬α
<N>¬β=¬∂0¬β,
↓ β"β∞≤¬βotherwiseα∞theα∞systemα∞(whichα∞alwaysα∞insistsα∞onα∞havingα∞font#¬∂0¬βα∞aroundα∞evenα
ifα
it
↓ β"β∞:¬βhasα
toα
makeα
itα
up)α
willα
wasteα
yourα
timeα
byα
loadingα
oneα
moreα
fontα
thanα
youα
are
↓ β"β∞X¬βactuallyα
using.
↓ ↓Hβ∞t¬
1¬∂F¬¬<N>¬β↓ β"(Uα
Jα
CRα
o)α
--α
selectsα
aα
fontα
whichα
hasα
alreadyα
beenα
loadedα
--α
allα
textα
afterα
this
↓ β"β∂∩¬βcommandα
beforeα
theα
next¬
α
1¬∂F¬βα
or¬
α
1¬∂M¬βα
willα
beα
inα
font#¬¬<N>¬β.
↓ ↓Hβ∂0¬
1¬∂f¬¬<N>¬β↓ β"(UαJαCR)α--αselectsαaαfontαforαjustα
oneα
character,α
thenα
backα
toα
oldα
font.α∀WARNING
↓ 	∃¬α 3↓ βxβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∃¬α 4↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ β"β↓H¬β--α⊃Doα⊃notα⊃placeα⊃theα⊃brickα⊃characterα⊃immediatelyα⊃afterα⊂thisα⊂commandα⊂because
↓ β"β↓f¬βcurrentlyα∞POXα∞willα∞quoteα∞theα∞brickα∞characterα
inα
theα
temporaryα
fontα
ratherα
than
↓ β"βα∧¬βescapingα
andα
quotingα
theα
firstαcharacterαofαgeneratedαtextαinαtheαtemporaryαfont
↓ β"βα"¬β--αbecauseαthisαisαregardedαasαaαbugα
itα
mightα
beα
changedα
somedayα
--α
currentlyα
it
↓ β"βα@¬βgeneratesα
aα
warningα
message.
↓ ↓Hβα↑¬β(See also push and pop font commands in the section on REGISTER COMMANDS.)
↓ εεββ~¬βIGNORE TEXT
↓ ↓Hββ6¬
1¬∂¬β (vert. tab)↓ β"(Uα
Jα
CRα
oα
A)α
--α
withoutα
changingα
mode,α
andα
withoutα
allowingα
EVERYPAGEα
toα
be
↓ β"ββV¬βcalledα⊃here,α⊃ignoreα⊃allα⊃inputα⊃textα⊃upα⊃toα⊃andα⊃includingα⊃theα⊂nextα⊂linefeed,α⊂thus
↓ β"ββt¬βconcatenationα⊂ofα∂inputα∂linesα∂mayα∂beα∂doneα∂providingα∂thatα∂theα∂line-breakα∂isα∂not
↓ β"β∧∩¬βinsideαsomeαcommandαsyntaxα--αifαyouαdoαthisαatαtheαbeginningα
ofα
aα
lineα
itα
isα
asα
if
↓ β"β∧0¬βtheα∞wholeα∞lineα∞weren'tα∞there,α∞thusα
commentα
linesα
mayα
beα
insertedα
anywhereα
in
↓ β"β∧N¬βtheα
sourceα
fileα
exceptα
inα
theα
middleα
ofα
macro-body-definitionsα
andα
inα
theα
middle
↓ β"β∧l¬βofα⊃theα⊃syntaxα⊃ofα⊃brick-commandsα⊃--α⊃thisα⊃commandα⊃isα⊃especiallyα⊃usefulα⊃inside
↓ β"β¬
¬βjustifyα∞orα∞centerify/rightifyα∞modeα∞toα∞createα∞aα∞veryα∞longα∞wordα
orα
aα
complicated
↓ β"β¬(¬βformulaαorαaαlongαsequenceαofαarithmeticαoperationsαwithoutαleavingαtheαmode.α∃It
↓ β"β¬F¬βisαalsoαusefulαinαPASS-AS-ISαtoαavoidαcallingαEVERYPAGEαjustαthen,αandαinα
macros
↓ β"β¬d¬βthatα
areα
likelyα
toα
beα
calledα
fromα
almostα
anywhere.
↓ ↓Hβε¬
1¬∂N¬β↓ β"(Uα
Jα
CRα
oα
A)α
--α
sameα
as¬
α
1¬∂¬βα
forα
peopleα
whoα
don'tα
likeα
verticalα
tabsα
inα
theirαtext
↓ β"βε ¬βfiles.α→(Theyα
printα
outα
as¬¬α
<LF><LF><LF><LF>¬βα
onα
TTY's,α
dial-upα
linesα
andα
theα
LPT,α
as
↓ β"βε>¬β"¬∂¬β"α∞onα∞localα∞DPY'sα∞andα∞theα∞XGP,α∞asα∞<erase-to-end-of-screen>α∞onα∞someα
Beehive
↓ β"βε\¬βterminals,α
andα
who-knows-whatα
onα
otherα
displayα
terminalsα
onα
theα
Arpanet.)
↓ ↓Hβεx¬
1¬∂,¬β (comma)↓ β"(UαJαCRα
oα
A)α
--α
sameα
as¬
α
1¬∂¬βα
exceptα
itα
ignoresα
throughα
nextα
form-feedα
(pageα
mark)
↓ β"βπ_¬βtherebyαconcatenatingαtwoαpagesαintoαoneα--αifαyouαdoαthisαatαtheαbeginningαofα
a
↓ β"βπ6¬βpage,α
itα
isα
asα
ifα
theα
wholeα
pageα
weren'tα
there.
↓ ↓HβπR¬
1¬∂ ¬β (space)↓ β"(Uα∂Jα∞CRα∞oα∞A)α∞--α∞withoutα∞changingα∞mode,α∞ignoreα∞allα∞inputα∞textα∞(onlyα∞spacesα∞and
↓ β"βπr¬βtabsαallowed)αupαtoαandαincludingαtheαnextαsemicolon.α⊗Thisα
isα
usefulα
forα
indenting
↓ β"βλ⊂¬βinput-textα
withoutα
generatingαspacesαorαtabsαinαtheαoutput.α⊗(Proposedαadditional
↓ β"βλ.¬βfeatureα∃(notα∃yetα∃implemented,α∃asα∃ofα∀1976.NOV.26),α∀ifα∀spacesα∀andα∀tabsα∀are
↓ β"βλL¬βterminatedα∪byα∪aα∩printingα∩characterα∩otherα∩thanα∩semicolon,α∩thatα∩characterα∩will
↓ β"βλj¬βterminateα
thisα
modeα
butα
willα
beα
unreadα
beforeα
returningα
toα
previousα
mode.)
↓ ↓Hβ	ε¬
1¬β↓ αH (tab)↓ β"(Uα
Jα
CRα
oα
A)α
--α
sameα
as¬
α
1¬βα
(space).
↓ ∧Gβ	D¬βENTER SPECIAL-FORMATTING MODES (J CR)
↓ ↓Hβ	`¬
1¬∂J¬β↓ β"(U)α
--αbeginsαfull-justifyαmode,αseeαtableαbelowαforαdetailsαonαthisαmodeαandαhow
↓ β"β
¬βtoα⊃getα⊃outα⊃ofα⊃it.α"--α⊃Beα⊃awareα⊃that,α⊂becauseα⊂fontα⊂selectsα⊂countα⊂asα⊂textα⊂and
↓ β"β
≡¬βthereforeα∂mustα∂beα∂insideα∂words,α∂andα∂becauseα∂tabsα∂cannotα∂beα∂inα∂theα∞middleα∞of
↓ β"β
<¬βjustifiedα
linesα
ofα
text,α
theα
followingα
inputα
syntaxα
isα
illegalα
andα
willα
generateα
the
↓ β"β
Z¬β"¬∂illegalα
tabα
inα
justify¬β"α
errorα
message:
↓ βrβ
v¬
1¬∂J¬
1¬∂F1¬¬<TB>¬∂Thisα
isα
aα
paragraphα
ofα
text¬β...¬
1¶.
↓ ↓Hβ⊗¬β  ↓ β"Toα
avoidα
thisα
problem,α
Iα
suggestα
youα
doα
itα
thisα
wayα
instead:
↓ βrβ2¬
1¬∂F1¬
1¬∂J¬¬<TB>¬∂Thisα
isα
aα
paragraphα
ofα
text¬β...¬
1¶.
↓ ↓HβP¬
1¬∂R¬β↓ β"(U)α⊃--α⊃beginsα⊃single-lineα⊂align-against-right-marginα⊂mode,α⊂seeα⊂tableα⊂belowα⊂for
↓ β"βp¬βdetailsα
onα
thisα
modeα
andα
howα
toα
getα
outα
ofα
it.
↓ ↓Hβ
¬
1¬∂C¬β↓ β"(U)α--αbeginsαsingle-lineαcenter-the-lineαmode,αseeαtableαbelowα
forα
detailsα
onα
this
↓ β"β
,¬βmodeα
andα
howα
toα
getα
outα
ofα
it.
↓ ∧	β
h¬βEXIT SPECIAL-FORMATTING MODES, ETC. (SEE TABLE)
↓ ↓Hβ
∧¬
1¬∂.¬β (period)
↓ ↓Hβ
"¬
1¬∂;¬β (semicolon)↓ β"Theseαtwoαcommandsαwillα
getα
outα
ofα
someα
modesα
backα
toα
pass-as-isα
mode,α
andα
do
↓ β"β
B¬βotherα
thingsα
likeα
ignoringα
textα
andα
suppressingα
<CR><LF>α
--α
seeα
tableα
belowαfor
↓ β"β
`¬βdetailsα
ofα
whatα
eachα
commandα
doesα
insideα
eachα
ofα
theα
modes.
∧∞_α"α
Z∧∞_
|xα∧∞_α"xα↓ α,β∞~¬
1¬∂.¬
↓ ¬n1¬∂;¬¬↓ λ.<CR><LF>↓  <TB>¬β or ¬¬<SP>
∧∞6(α
T∧∞6(Zα↓ 2β∞8¬βPass-as-is↓ α,(not supported)↓ ¬ndo ¬
1¬∂N¬β, #4¬¬↓ λ.<CR><LF>¬β, #4↓  copy to output
↓ 2β∞V¬βJustify↓ α,finish, ¬¬<CR><LF>¬β, do ¬
1¬∂N¬β↓ ¬nillegal↓ λ.(see #1)↓  (see #2)
↓ 2β∞t¬βCenterify/Rightify↓ α,finish, pass-as-is↓ ¬nfinish, do ¬
1¬∂N¬β, pass-as-is↓ λ.finish, ¬¬<CR><LF>¬β, pass-as-is↓  (see #3)
∧∂⊂(α
T↓ ↓Hβ∂0¬βfinishα
--α
Getα
outα
ofα
specialα
modeα(don'tαemit¬¬α<CR><LF>¬βαyet).α⊗Toαprotectαusersαwhoαputαtextαafter¬
α1¬∂.¬βαat
↓ 	∃¬α 4↓ βxβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∃¬α 5↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬βtheαendα
ofα
justifiedα
text,α
the¬
α
1¬∂N¬βα
shownα
inα
theα
tableα
aboveα
printsα
anyα
flushed-textα
onα
yourα
terminalα
asα
a
↓ ↓Hβ↓f¬βsort-ofα
errorα
message.α∀Whenα
leavingα
centerify/rightifyα
modeα
withα
the¬
α
1¬∂.¬βα
command,α
theα
tableα
showsα
no
↓ ↓Hβα∧¬
1¬∂N¬βα
commandα
andα
no¬¬α
<CR><LF>¬βα
inserted,α
soα
thatα
anyα
followingα
textα
onα
theα
sameα
inputα
lineα
willα
occurα
on
↓ ↓Hβα"¬βtheα
sameα
lineα
ofα
output.α∀Similarilyα
afterα
using¬
α
1¬∂;¬βα
toα
leaveα
centerify/rightifyα
mode,α
textα
onα
theα
↓&next↓)ααα
line
↓ ↓HβαB¬βofα
inputα
willα
overprintα
onα
theα
↓&same↓)ααα
lineα
ofα
output.
↓ ↓Hβα}¬β#1α
--α
Aα
blankα
lineα
(i.e.,¬¬α
<CR><LF>¬βα
immediatelyα
followedα
by¬¬α
<CR><LF>¬β)α
causesα
theα
previousα
paragraphα
(if
↓ ↓Hββ≤¬βanyαisαinαprogress)αtoαbeαfinished,αthenαaαblankαlineαisαemitted.α⊗Asαmanyαblankαlinesαasαappearα
inα
input
↓ ↓Hββ:¬βwillα∩appearα∩inα∩output.α"Theα⊃nextα⊃nonblankα⊃lineα⊃beginsα⊃aα⊃newα⊃paragraph.α"Aα⊃single¬¬α⊃<CR><LF>¬βα⊃inα⊃a
↓ ↓HββX¬βparagraphα
isα
merelyα
aα
breakα
betweenα
words.
↓ ↓Hβ∧∀¬β#2α--αOneαorαmoreα
tabsα
atα
theα
beginningα
ofα
aα
lineα
causesα
theα
previousα
paragraphα
(ifα
anyα
isα
inα
progress)
↓ ↓Hβ∧2¬βtoα⊂beα⊂finished,α⊂thenα⊂aα⊂newα⊂paragraphα⊂isα⊂startedα⊂withα⊂itsα⊂firstα⊂lineα∂indentedα∂byα∂theα∂tab(s).α≡Tab(s)
↓ ↓Hβ∧P¬βelsewhereαareαillegal.α⊗NOTEα--αThereαisαcurrentlyαnoαwayαtoαindentαbyαanyαamountαotherαthanα
aα
whole
↓ ↓Hβ∧n¬βnumberα
ofα
tabs,α
norα
isα
thereα
anyα
wayα
toα
outdentα
byα
anyα
amountα
atα
all.
↓ ↓Hβ¬*¬β#3α--αTab(s)α
and/orα
space(s)α
atα
theα
beginningα
areα
ignoredα
(inα
centerifyα
thisα
makesα
thingsα
lookα
pretty,α
in
↓ ↓Hβ¬H¬βrightifyα∂itα∞doesn'tα∞makeα∞anyα∞difference).α≤Elsewhereα∞tabsα∞areα∞illegalα∞andα∞spacesα∞areα∞treatedα∞asα∞text.
↓ ↓Hβ¬f¬β(Theα
featureα
ofα
ignoringα
tabsα
andα
spacesα
atα
theα
endα
isα
currentlyα
underα
considerationα
soα
don'tα
relyα
on
↓ ↓Hβε∧¬βspacesα
beingα
treatedα
asα
textα
there.)
↓ ↓Hβε@¬β#4α
--α
Afterα
performingα
theα
indicatedαoperation,αifαtheαEVERYPAGEαfeatureαhasαbeenαrequestedαforαthis
↓ ↓Hβε↑¬βpageα∞(i.e.,α∞ifα∞VEREVEα∞wasα∞TRUEα∞atα∞theα∞endα∞ofα
theα
preceedingα
page)α
butα
notα
yetα
performed,α
thenα
the
↓ ↓Hβε|¬βbodyα
ofα
theα
macroα
EVERYPAGEα
isα
patchedα
intoαtheαinputαstreamαatαthisαpoint.α⊗This,αofαcourse,αisαlikely
↓ ↓Hβπ~¬βtoαclobberα
anyα
registersα
(includingα
theα
ac)α
thatα
areα
usedα
byα
theα
EVERYPAGEα
macro,α
unlessα
youα
carefully
↓ ↓Hβπ8¬βwriteα
yourα
EVERYPAGEα
macroα
soα
thatα
itα
savesα
andα
restoresα
theα
acα
andα
anyα
otherα
registersα
itα
uses.
↓ ¬λβπt¬βREDEFINE THE BRICK CHARACTER
↓ ↓Hβλ⊂¬
1¬∂|¬¬<CH>¬β↓ β"(Uα
Jα
CRα
oα
A)α
--α
changesα
theα
brickαcharacterαto¬¬α<CH>¬βα--αIαdon'tαguaranteeαparsing
↓ β"βλ0¬βwillα∂meshα∂withα∂thisα∂inα∂aα∂reasonableα∂wayα∂ifα∂youα∂doα∂thisα∂deepα∂insideα∂something
↓ β"βλN¬βcomplicatedα
likeα
justify,α
surroundedα
nearbyαbyαthingsαthatαdependαonαtheαescape
↓ β"βλj¬βcharacterα∂beingα∞whatα∞you'dα∞expectα∞--α∞noteα∞thatα∞ifα∞youα∞do¬
α∞1¬∂||¬βα∞youα∞can'tα∞later
↓ β"β	
¬βchangeα∞backα∞becauseα∞thenα∞asα∞longα∞asα∞"¬∂|¬β"α∞isα∞theα
escapeα
character,α
"¬∂||¬β"α
willα
be
↓ β"β	&¬βparsedα∀asα∀"¬
11¬β"α∀ratherα∀thanα∀asα∪"¬
1¬∂|¬β..."α∪(seeα∪the¬
α∪11¬βα∪and¬
α∪1¬∂"¬¬<CH>¬βα∪commands
↓ β"β	D¬βdescribedα∩laterα∩inα∩thisα⊃manual)α⊃unless,α⊃ofα⊃course,α⊃youα⊃haveα⊃disabledα⊃the¬
α⊃11
↓ β"β	b¬βcommandα
byα
meansα
of¬
α
1¬∂⊂'1000001;¬βα
orα
equivalent.
↓ ¬	β
≠¬Examples of basic commands
↓ α_β
>¬βIn this writeup I loaded the following fonts (¬∂$¬β is the escape character):
↓ ↓Hβ
\¶$M0NGR30;$M1NGR30;$M2BDI25;$M3NGR25;$M4POXNGB[CSP,DOC];$M5POXNGR[CSP,DOC];$M6XMAS25;
↓ ↓Hβ
z¶$MFFIX25;$MCPOXBRK.FNT[CSP,DOC];
↓ ↓Hβ_¬β(Noteα
thatα
NGR30α
isαnotαreallyαloadedαtwiceαbecauseαwhenαPOXαseesαthe¬∂α$M1¬β...αcommandαitαnoticesαthat
↓ ↓Hβ6¬∂NGR30¬βα∂isα∂alreadyα∂loadedα∂asα∂font#¬∂0¬βα∂andα∂POXα∂thenα∂merelyα∂mapsα∂userα∂fontα∂number¬∂α∂1¬βα∂toα∂systemα∂font
↓ ↓HβT¬βnumber¬∂α
0¬βα
byα
meansα
ofα
theα
fontα
mappingα
tableα
inα
POX.)
↓ α_βr¬βLaterα
inα
thisα
writeup,α
inα
aα
required-sourceα
file,α
theα
followingα
load-fontα
commandsα
appear:
↓ ↓Hβ
⊂¬∂\M0FIX25;\M1NGB25[1,REM];\M2POXNGR[CSP,DOC];\M3BDI25;
↓ ↓Hβ
.¶\M9GRK30;\MEGRKL50;\MFPOXBRK.FNT[CSP,DOC];
↓ ↓Hβ
L¬βOnlyαtheαfontsα
notα
previouslyα
loadedα
areα
loadedα
now.α∀Theα
restα
areα
merelyα
mappedα
toα
theirα
systemα
font
↓ ↓Hβ
j¬βnumbersα
(assignedα
whenα
firstα
loaded)α
fromα
theirα
newα
userα
fontα
numbers.
↓ α_β
ε¬βThisαparagraphαandαallαotherαjustifiedαtextαatαnormalαmarginsαwasαdoneαbyα
using¬
α
1¬∂J¬βα
toα
enterα
and
↓ ↓Hβ
$¬
1¬∂.¬βα
toα
exitα
justifyα
mode.α_(Seeα
theα
sectionα
onα
REGISTERSα
forα
howα
indentedα
paragraphsα
ofα
descriptions
↓ ↓Hβ
B¬βafterα
eachα
commandα
syntaxα
wasα
doneα
byα
the¬
α
1¬∂j¬βα
command.)α_Theα
titleα
onα
theαfirstαpageαisαinαcenterify
↓ ↓Hβ
`¬βmode,α
using¬
α
1¬∂C¬βα
toα
enterα
and¬¬α
<CR><LF>¬βα
toα
exit.α_(Theαtitlesαonαotherαpagesαareαdoneαbyαoverlays,αwhich
↓ ↓Hβ∞¬βareα
alsoα
explainedα
laterα
inα
thisα
writeup.)
↓ α_β∞<¬βHereα
areα
someα
furtherα
examplesα
ofα
theα
aboveα
commands:
↓ ↓Hβ∞Z¬∂$F1This line $F2is in $F3several fonts.  $f1Temp $f1font $f1selects
↓ ↓Hβ∞s¬This line ¬αis in ¬βseveral fonts.  ¬T¬βemp ¬f¬βont ¬s¬βelects
↓ ↓Hβ∂4¬∂$F5$CThis line has antidisestablishmentarianismfoogarplylongwordthatis$N
↓ 	∃¬α 5↓ βxβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∃¬α 6↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬∂allinthesinglewordininthemiddleofthislineofcenteredtext as you see.
↓ ↓eβ↓j¬¬This line has antidisestablishmentarianismfoogarplylongwordthatisallinthesinglewordininthemiddleofthislineofcenteredtext as you see.
↓ ↓Hβα"¬∂$F3Hello there.$RWell, hello to you too$;
↓ ↓Hβα@¬∂$C(Middle on same line)
↓ ↓Hβα↑¬βHello there.↓ 	ZWell, hello to you too↓ ¬S(Middle on same line)
↓ ↓Hββ~¬∂$F3Left part $f1$CThis didn't get centered, see next example for fix
↓ ↓Hββ3¬βLeft part ¬$¬βCThis didn't get centered, see next example for fix
↓ ↓Hββt¬∂$F3Left part $C$f1This got centered ok.
↓ ↓Hβ∧
¬βLeft part ¬↓ ¬PT¬βhis got centered ok.
↓ ↓Hβ∧N¬∂$F3For the same reason $f1$'14; doesn't do what you would want.
↓ ↓Hβ∧g¬βFor the same reason ¬$¬β'14; doesn't do what you would want.
↓ ↓Hβ¬(¬∂$F3But in this case some commands discussed later, $#$F1$'14;$G, do the trick.
↓ ↓Hβ¬A¬βBut in this case some commands discussed later, ¬
¬β, do the trick.
↓ ε∧β¬}¬SIMULATOR
↓ α_βε ¬βTheα
"linefeedα
simulator"α
isα
aα
post-processorα
forα
allα
textα
emittedα
byα
theα
ordinaryαmodeαscanners
↓ ↓Hβε<¬β(Uα
Jα
orα
CR).α~Toα
enableα
theα
linefeedα
simulator,α
useα
the¬
α
1¬∂⊂'4;¬βα
commandα
(seeα
theα
sectionα
onα
enabling
↓ ↓Hβε\¬βspecialα
features).
↓ α_βεz¬βTheα⊂originalα⊂functionα⊂ofα⊂theα⊂simulatorα⊂wasα∂toα∂simulateα∂theα∂theα∂wayα∂XGPSERα∂(theα∂partα∂ofα∂the
↓ ↓Hβπ_¬βsystemα∂thatα∂servicesα∂theα∂XGP,α∂inα∂particularα∂"XGPα∂characterα∂mode"α∂asα∂describedα∂inα∂theα∞UUOα∞manual)
↓ ↓Hβπ6¬βwouldα∪handleα∪linefeedsα∪emittedα∪byα∪POX,α∪i.e.,α∪theα∪simulatorα∪replacesα∩eachα∩linefeedα∩byα∩anα∩explicit
↓ ↓HβπT¬βvertical-position-selectα∞thatα∞isα∞equivalentα∞toα∞whatα∞XGPSERα
wouldα
haveα
doneα
ifα
theα
linefeedα
hadα
been
↓ ↓Hβπr¬βemittedα∂directlyα∂intoα∂theα∂outputα∂file.α≡Thatα∂makesα∂itα∂possibleα∂forα∂POXα∂toα∂sortα∞vectorsα∞andα∞textα∞into
↓ ↓Hβλ⊂¬βcorrectα∂sequenceα∂accordingα∂toα∂verticalα∂positionα∂onα∂theα∂pageα∂beforeα∞outputtingα∞themα∞(XGPα∞character
↓ ↓Hβλ.¬βmodeα
requiresα
this),α
toα
knowα
whenα
bottomα
ofα
pageα
isα
reachedα
andα
aα
newαpageαisαstartedα(soαthatαPOX
↓ ↓HβλL¬βcanα
keepα
trackαofαpageαnumbersαcorrectly,αorαwarnαtheαuserαifαaαpageαbecomesαfullαunexpectedly),αand
↓ ↓Hβλj¬βsoα⊃thatα⊃uniformα⊃baselineα⊃spacingα⊂canα⊂beα⊂obtainedα⊂regardlessα⊂ofα⊂varyingα⊂sizesα⊂ofα⊂superscriptsα⊂and
↓ ↓Hβ	λ¬βsubscripts.α2Laterα→theα→simulatorα→wasα→enhancedα→toα→optimizeα_font-selects,α_column-adjusts,α_and
↓ ↓Hβ	&¬βbaseline-adjusts,α
i.e.,α
toα
eliminateα
allα
redundantα
operations,α
andα
toα
implementα
giant-baseline-offset,αi.e.,
↓ ↓Hβ	B¬βwhenα
a¬
α
1¬∂↑¬βα
or¬
α
1¬∂↓¬βα
or¬
α
1¬∂→,¬βα
commandα
isα
givenα
withα
anα
argumentα
outαofαtheαrangeαofα-100αtoα+77α(octal)
↓ ↓Hβ	b¬βtheα
baseline-specificationα
isα
expandedα
intoα
enoughα
relative-baseline-offsetsα
toα
accomplishα
theα
desired
↓ ↓Hβ	}¬βeffect,α
andα
(1977α
Jan)α
toα
supportα
overlays-qua-charactersα
viaα
the¬
α
1¬∂H¬βα
command.
↓ α_β
≡¬βManyα
ofα
theα
commandsα
belowα
requireα
theα
simulatorα
ifα
theyα
areα
toα
workα
inα
fullα
generalityα
orα
atα
all.
↓ ελβπ¬REGISTERS
↓ α_β≥¬βThereα∩areα∩2↓#
7↓#=128α∩registersα∩whichα∩canα∩holdα∩anyα∩36-bitα∩integerα∩(PDP-10α∩two'sα∩complement
↓ ↓HβH¬βformat),α
suchα
asα
theα
horizontalα
coordinateα
ofα
someα
columnα
onα
theα
page.α_(¬αNote¬βα
--α
allα
locationsα
onα
the
↓ ↓Hβf¬βXGP,αwhetherαrelativeαorαabsolute,αareαmeasuredαinαXGPαpixelsαwhichαareαaboutα5α
mils,α
i.e.α∀1/200α
inch)
↓ ↓Hβ
∧¬βTheα∞ideaα∞isα∞toα∞allowα∞specificationα∞ofα
multi-columnα
tablesα
and¬αα
superscripts-above-subscripts¬βα
inα
anα
easy
↓ ↓Hβ
"¬βandα
flexibleα
way,α
includingα
automaticα
allocationα
ofα
suchα
thingsα
asα
"¬α1/5α
ofα
aα
page¬β"α
byα
simpleα
division,
↓ ↓Hβ
@¬βandα⊂toα∂performα∂anyα∂otherα∂integerα∂arithmeticα∂orα∂logicα∂thatα∂mightα∂beα∂usefulα∂duringα∂compilationsα∂ofα∂a
↓ ↓Hβ
↑¬βdocument.α≡Eachα∂registerα∂isα∞specifiedα∞byα∞anα∞ASCIIα∞character.α≤(¬αNote¬βα∞--α∞inα∞general,α∞POXα∞distinguishes
↓ ↓Hβ
|¬βbetweenα⊂upper-α⊂andα⊂lower-caseα⊂charactersα⊂--α⊂forα⊂example,α⊂"¬∂k¬β"α⊂andα⊂"¬∂K¬β"α⊂doα⊂notα∂referα∂toα∂theα∂same
↓ ↓Hβ
~¬βregister.)α⊗Oneαofαtheαnon-alphanumericαregistersα(currentlyαregister¬∂α∀¬β)α
isα
calledα
theα
"¬αaccumulator¬β"α
and
↓ ↓Hβ
8¬βisα∞theα∞intermediateα∞storageα∞forα
mostα
sequencesα
ofα
arithmeticα
calculation.α~Otherα
specialα
registersα
are
↓ ↓Hβ
V¬βlistedα
below,α
asα
wellα
asα
charactersα
thatα
don'tα
specifyα
registersα
atα
all.α→(¬αWarning¬βα
--α
non-alphanumeric
↓ ↓Hβ
t¬βregisterα∂namesα∂areα∞liableα∞toα∞beα∞changedα∞toα∞specialα∞argumentsα∞likeα∞"."α∞andα∞","α∞withoutα∞muchα∞warning.
↓ ↓Hβ∞∩¬βTherefore,α
pleaseα
useα
onlyα
alphanumericα
registerα
namesα
inα
filesα
thatα
youα
willα
beα
unwillingα
toα
maintain.)
↓ ↓Hβ∞I¬Meaning of argument(s) to the commands:
↓ ↓Hβ∞l¬¬<CH>¬β↓ β"Ifα
notα
mentionedα
below,α
contentsα
ofα
registerα
correspondingα
toα
thatα
character.
↓ ↓Hβ∂
¬∂. ¬β(period)   ↓ β"Currentα⊂columnα∂locationα∂(increasesα∂asα∂youα∂moveα∂toα∂theα∂right)α∂isα∂storedα∂inα∂the
↓ β"β∂(¬βrightα⊂halfα⊂ofα⊂thisα⊂register.α∨Everyα∂timeα∂aα∂characterα∂isα∂written,α∂thisα∂registerα∂is
↓ 	∃¬α 6↓ βxβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∃¬α 7↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ β"β↓H¬βupdatedα
toα
accountα
forα
theα
spaceα
usedα
upα
byα
theα
character,α
andα
ifα
youα
writeα
in
↓ β"β↓f¬βthisα
register,α
aα
columnα
selectα
willα
beα
generatedα
inα
yourα
outputα
fileα
toα
reallyα
put
↓ β"βα∧¬βyouα∂there.α≡(U)α∂Inα∂pass-as-isα∂mode,α∂thisα∂columnα∂locationα∂isα∂relativeα∂toα∂theα∞left
↓ β"βα"¬βedgeα∞ofα∞theα∞paperα
andα
shouldα
beα
inα
theα
rangeα
ofα
50α
toα
1650α
(decimal)α
usually.
↓ β"βα@¬βTheαleftαhalfαofαthisαregisterαisαzeroαinαthisαcase.α∃(J)α
Inα
justifyα
mode,α
itα
isα
relative
↓ β"βα↑¬βtoα∩theα∩beginningα∩ofα∩theα∩currentα∩wordα⊃ofα⊃textα⊃(delimitedα⊃by¬¬α⊃<SP>¬βα⊃or¬¬α⊃<TB>¬βα⊃or
↓ β"βα|¬¬<CR><LF>¬βα∩exceptα∩that¬¬α∩<SP>¬βα∩doesα∩notα∩delimitα∩ifα∩itα∩isα∩notα∩onα∩theα∩baseline).α#A
↓ β"ββ~¬βrelocationα
identifierα
isα
inαtheαleftαhalfαofαtheαregisterαtoαallowαcheckingαforαillegal
↓ β"ββ8¬βcolumnα
selects.α_(CR)α
Inα
centerify/rightifyα
mode,α
itα
isα
relativeαtoαtheαbeginningαof
↓ β"ββV¬βtheα
centered/rightifiedα
textα
withα
aα
passwordα
inα
theα
leftα
halfα
asα
ifα
theα
textα
were
↓ β"ββt¬βoneα⊃bigα⊃word.α"(o)α⊃Inα⊃defineα⊃atomicα⊃textα⊃overlayα⊃mode,α⊃theα⊂rightα⊂halfα⊂isα⊂the
↓ β"β∧∩¬βlocationα⊂relativeα∂toα∂theα∂basepointα∂ofα∂theα∂overlay,α∂usuallyα∂theα∂leftα∂edgeα∂ofα∂the
↓ β"β∧0¬βoverlay.α~--α
Inα
argumentsα
toα
macros,α
itα
isα
notα
implementedα
althoughα
youα
areα
not
↓ β"β∧N¬βpreventedαfromαtotallyαscrewingαyourselfαbyα
theα
attemptα
toα
storeα
inα
thisα
register,
↓ β"β∧l¬βorα
gettingα
worthlessα
undocumentedα
dataα
byα
readingα
fromα
thisα
register.
↓ ↓Hβ¬
¬∂, ¬β(comma)    ↓ β"Thisαregisterαworksαsomewhatαlikeαperiod,αcurrentαrelativeαpositionαofαtextαabove
↓ β"β¬ ¬βbaselineα(ifαnegative,α
belowα
baseline)α
--α
thus¬
α
1¬∂←¬εq¬
1¬∂→,¬βα
replaces¬
α
1¬∂↑¬εq¬βα
and¬
α
1¬∂↓¬εq¬β'α
as
↓ β"β¬D¬βwellα
as¬
α
1¬∂∩¬βα
and¬
α
1¬∂∪¬β.α~(Uα
Jα
CR)α
Seeα
theα
noteα
afterα
the¬
α
1¬∂↑¬βα
and¬
α
1¬∂↓¬βα
commands,α
for
↓ β"β¬d¬βlegalα
rangeα
ofα
valueα
storedα
inα
register¬∂α
,¬β.
↓ ↓Hβεα¬∂; ¬β(semicolon)↓ β"Likeα"."αorα","α--αabsoluteαpositionα(belowαtopαofα
page)α
ofα
theα
lastα
scanα
lineα
ofα
the
↓ β"βε ¬βlastα
textα
lineα
previouslyα
printed,α
orα
zeroα
ifα
thisα
isα
explicitlyα
theα
firstα
thingα
onα
a
↓ β"βε>¬βpage.α⊗Noteαthatαifαtheαcurrentαlineαwon'tαfitαonαaαpageαandαwillαgetαmovedαtoα
the
↓ β"βε\¬βnextαpageαautomatically,αtheαnext-pageαdecisionαwon'tα
haveα
beenα
madeα
untilα
after
↓ β"βεz¬βprocessingαofαthisαlineαisαdone,αsoαthatαregisterα;α
willα
stillα
indicateα
theα
locationα
(on
↓ β"βπ_¬βtheαpreviousαpage)αofα
theα
previousα
line,α
insteadα
ofα
zero.α∀(Registerα
;α
onlyα
contains
↓ β"βπ4¬βthisα
informationα
ifα
thisα
featureα
isα
enabled.α∀Seeα
noteα
4α
andα
the¬
α
1¬∂⊂¬βα
command.)
↓ ↓HβπT¬∂L¬β↓ β"Leftα
marginα
isαstoredαinαthisαregisterα(¬¬<CR>¬βαcausesαcolumnαselectαhereα--αseeαalso
↓ β"βπp¬
1¬∂J¬
α
1¬∂C¬
α
1¬∂R¬
α
1¬∂O¬
α
1¬∂W¬β).
↓ ↓Hβλ⊂¬∂R¬β↓ β"Rightαmarginα(forαJαandαCRαmodes,αandαforαwarningαyouα
ifα
youα
tryα
toα
writeα
pastα
it
↓ β"βλ.¬βinα
pass-as-isα
mode)α
isα
storedα
inα
thisα
register.
↓ ↓HβλJ¬β(Note, top and bottom margins are handled differently; see the ¬
1¬∂T¬β, ¬
1¬∂t¬β, ¬
1¬∂B¬β, and ¬
1¬∂b¬β commands.)
↓ ↓Hβ	λ¬∂'¬¬<SIGNED OR UNSIGNED OCTAL NUMBER>¬∂;
↓ β"β	&¬βInsteadαofαreadingαaα
numberα
fromα
aα
register,α
theseα
octalα
digitsα
areα
assembledα
into
↓ β"β	D¬βaα
constantα
andα
thatα
constantα
actsα
asα
anα
immediateα
operandα
(READONLY).
↓ ↓Hβ	b¬∂=¬¬<SIGNED OR UNSIGNED DECIMAL NUMBER>¬∂;¬β↓ ¬HSame as above except decimal conversion (READONLY).
↓ ↓Hβ
¬∂w¬¬<CH>¬β↓ β"Widthα
ofα
character¬¬α
<CH>¬βα
inα
currentα
fontα
(READONLY).
↓ ↓Hβ
≤¬∂H¬β↓ β"Totalα
heightα
ofα
currentα
fontα
(READONLY)α
(ifα
enabled,α
seeα
the¬
α
1¬∂⊂¬βα
command).
↓ ↓Hβ
:¬∂h¬β↓ β"Heightα∀aboveα∀baselineα∀ofα∀currentα∀fontα∪(READONLY)α∪(ifα∪enabled,α∪seeα∪the¬
α∪1¬∂⊂
↓ β"β
Z¬βcommand).
↓ α_β⊗¬βTheα⊃argumentsα⊃markedα⊃"(READONLY)"α⊃aboveα⊃areα⊃forbiddenα⊃inα⊃certainα⊃commandsα⊂becauseα⊂the
↓ ↓Hβ4¬βcommandα
expectsα
toα
haveα
aα
genuineα
registerα
toα
storeα
dataα
into.α~Thisα
restrictionα
willα
beα
indicatedα
by
↓ ↓HβR¬β"READONLYα
operandsα
notα
allowed"α
inα
theα
commandα
descriptions.
↓ α_βp¬βThroughoutαtheαremainderαofα
thisα
writeup,α
command-argumentsα
thatα
areα
parsedα
inα
theα
aboveα
way
↓ ↓Hβ
∞¬βwillα
beα
denotedα
byα
variousα
alphabeticα
charactersα
inα
aα
specialαfont,αtoαdistinguishαthemαfromαcharacters
↓ ↓Hβ
,¬βthatα
youα
areα
supposedα
toα
actuallyα
typeα
(whichα
areα
inα
aα
keyboard-styleα
fontα
asα
describedα
earlier),αand
↓ ↓Hβ
J¬βBNF-styleαsyntacticalαentitiesα(whichαareαinαyetαanotherαfontαasαalsoαshownαearlier).α∀Hereα
areα
whatα
the
↓ ↓Hβ
h¬βalphabeticsα
lookα
likeα
inα
theα
argumentα
font:
↓ ↓Hβ
}¬εabcdefghijklmnopqrstuvwxyz
↓ ↓Hβ
=¬The commands that use the types of arguments described above:
↓ ∧;β
}¬βLOAD/STORE/ARITHMETIC/LOGIC OPERATIONS
↓ ↓Hβ∞∀¬
1¬∂←¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
loadα
acα
from¬εα
q¬β.
↓ ↓Hβ∞2¬
1¬∂→¬εq¬β↓ ββ(Uα⊂Jα⊂CRα⊂oα⊂A)α⊂--α∂storeα∂contentsα∂ofα∂acα∂into¬εα∂q¬β,α∂READONLYα∂operandsα∂not
↓ βββ∞X¬βallowed.α⊗WARNINGα--αDoαnotαstoreαinαregistersα"."α","αorα";"α
exceptα
where
↓ βββ∞v¬βlegal.α∀POXα
willα
getα
confusedα
ifα
youα
do.α∀Seeα
argumentα
descriptionα
above.
↓ ↓Hβ∂
¬
1¬∂+¬εq¬β  ¬
1¬∂-¬εq
↓ ↓Hβ∂*¬
1¬∂*¬εq¬β  ¬
1¬∂/¬εq¬β↓ ββ(Uα⊃Jα⊃CRα⊃oα⊃A)α⊃--α⊃usualα⊃arithmeticα⊃--α⊂acα⊂plus/minus/times/dividedby¬εα⊂q¬β,
↓ 	∃¬α 7↓ βxβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∃¬α 8↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ βββ↓H¬βresultα
inα
ac.
↓ ↓Hβ↓↑¬
1¬∂%¬εq¬β↓ ββ(UαJαCRαoαA)α--α"modulo"α--αacαdividedαby¬εαq¬β,αremainderαinαac.α∀Ifα
theα
acα
is
↓ βββ↓|¬βnonnegativeαand¬εα
q¬βα
isα
positive,α
thisα
correspondsα
toα
reducingα
theα
acα
modulo
↓ βββα~¬εq¬βα∂(numberα∂theory),α∂otherwiseα∂theα∂resultα∂isα∂nonstandardα∞mathematically,
↓ βββα@¬βandα
indeedα
machine-dependent.
↓ ↓HβαV¬
1¬∂¬¬εq¬β  ¬
1¬∂\¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
reverseα
arithmeticα
--¬εα
q¬βα
minus/dividedbyα
ac,α
resultα
inα
ac.
↓ α&βαz¬¬[Note -- since -1 is stored in the PDP-10 as all-ones, the POX command ¬
1¬∂¬'-1;¬¬ will logically complement the ac.]
↓ ↓Hββ∩¬
1¬∂∧¬εq¬β  ¬
1¬∂∨¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
usualα
logicalα
operationsα
--α
acα
and/or¬εα
q¬β,α
resultα
inα
ac.
↓ ↓Hββ0¬
1¬∂L¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
logicalα
shiftα
ofα
acα
leftα
by¬εα
q¬βαbitsα(if¬εαq¬β<0αthenαshiftαright),
↓ ββββV¬βresultα
inα
ac.
↓ ↓Hββl¬
1¬∂~¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
maximumα
ofα
acα
and¬εα
q¬β,α
resultα
inα
ac.
↓ ↓Hβ∧
¬
1¬∂_¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
minimumα
ofα
acα
and¬εα
q¬β,α
resultα
inα
ac.
↓ ∧kβ∧N¬βSUBSCRIPT/SUPERSCRIPT COMMANDS
↓ ↓Hβ∧d¬
1¬∂↑¬εq¬β↓ ββ(Uα
Jα
CRα
o)α
--α
moveα
textα
up¬εα
q¬βα
withα
respectα
toα
theα
baseline.
↓ ↓Hβ¬α¬
1¬∂↓¬εq¬β↓ ββ(Uα
Jα
CRα
o)α
--α
moveα
textα
down¬εα
q¬βα
withα
respectα
toα
theα
baseline.
↓ α_β¬(¬βWithα
theα
simulatorα
onα
thereα
isα
noα
limitα
imposedα
byα
POXα
orα
XGPSERα
asα
toα
howα
largeα
(positiveα
or
↓ ↓Hβ¬F¬βnegative)α∂theα∂baselineα∂offsetα∂canα∂be,α∂exceptα∞thatα∞eachα∞lineα∞ofα∞textα∞mustα∞fitα∞entirelyα∞onα∞aα∞page,α∞and
↓ ↓Hβ¬d¬βthingsα
thatα
areα
tooα
complicatedα
won'tα
work,α
especiallyα
ifα
theα
systemα
isα
loaded.α_Withoutα
theα
simulator,
↓ ↓Hβεα¬βPOXα∂makesα∞sureα∞theα∞XGPSERα∞rangeα∞ofα∞-100α∞toα∞+77α∞(octal)α∞isn'tα∞exceeded.α≤Thisα∞noteα∞appliesα∞toα∞the
↓ ↓Hβε≡¬βvalueα⊃storedα⊃inα⊃register¬∂α⊃,¬βα⊃asα⊃wellα⊃asα⊃theα⊃argumentα⊃toα⊃the¬
α⊂1¬∂↑¬βα⊂commandα⊂andα⊂theα⊂negativeα⊂ofα⊂the
↓ ↓Hβε<¬βargumentα
toα
the¬
α
1¬∂↓¬βα
command.
↓ ↓HβεZ¬
1¬∂∩¬β↓ ββ(Uα
Jα
CRα
o)α
--α
upα
toα
defaultα
superscriptα
locationα
(halfα
theα
totalα
heightα
of
↓ βββεz¬βtheαcurrentαfont),αeasierαthanαstoringαaαpositiveαconstantαinα
registerα
","α
or
↓ βββπ⊂¬βsettingα
upα
aα
positiveα
constantα
inα
someα
register¬εα
q¬βα
andα
thenα
using¬
α
1¬∂↑¬εq¬β.
↓ ↓Hβπ4¬
1¬∂∪¬β↓ ββ(Uα
Jα
CRα
o)α
--α
downα
toα
defaultα
subscriptα
locationα
(halfα
theα
totalα
heightα
of
↓ βββπT¬βtheα
currentαfont),αeasierαthanαstoringαaαnegativeαnumberαinαregisterα","αor
↓ βββπj¬βsettingα
upα
aα
positiveα
constantα
inα
someα
register¬εα
q¬βα
andα
thenα
using¬
α
1¬∂↓¬εq¬β.
↓ ↓Hβλ∞¬
1¬∂⊗¬β↓ ββ(UαJαCRαo)α--αbackαtoαnormalαbaselineαfromα
superscriptα
orα
subscript;α
don't
↓ βββλ,¬βforgetα
toα
doα
this!α
--α
easierα
than¬
α
1¬∂↑=0;¬βα
or¬
α
1¬∂↓=0;¬βα
or¬
α
1¬∂←=0;¬
1¬∂→,¬βα
.
↓ ¬≡βλj¬βUNDERLINE OR FRACTION BAR
↓ α_β	¬βNote,αtheαpositionαofαanαunderlineα(includingαallαscan-linesαofαthe¬
α
1¬∂U¬εlatr¬βα
command)α
isα
restricted
↓ ↓Hβ	&¬βtoα
aα
rangeα
ofα
-100α
toα
+77α
(octal).α⊗Theαuserαwhoαwantsαfractionαbarsαetc.αoutsideαofαthatαrangeαhasαat
↓ ↓Hβ	D¬βpresentα⊃onlyα⊃oneα⊃option:α⊃useα⊃theα⊃macrosα⊃ofα⊃H.α⊃P.α⊂Moravecα⊂whichα⊂simulateα⊂underlinesα⊂byα⊂patching
↓ ↓Hβ	b¬βtogetherα∞theα∞appropriateα∞numberα∞ofα∞graphicsα∞fontα∞charactersα∞endα∞toα∞end.α≤Atα∞someα
futureα
timeα
itα
is
↓ ↓Hβ
¬βconceivableα
thatα
POXα
couldα
convertα
underlinesα
intoα
vectors,α
placedα
appropriatelyα
onα
theα
pageα
toα
have
↓ ↓Hβ
≡¬βtheα∩desiredα⊃effect.α"(Thisα⊃proposedα⊃featureα⊃wouldα⊃beα⊃yetα⊃anotherα⊃miracleα⊃ofα⊃theα⊃"simulator",α⊃not
↓ ↓Hβ
<¬βavailableα
otherwise.)
↓ ↓Hβ
R¬
1¬∂U¬εlatr¬β↓ ββ(Uα⊃Jα⊃CRα⊃o)α⊃--α⊃underlineα⊃fromα⊃column¬εα⊃l¬βα⊃toα⊃column¬εα⊃r¬β,α⊃onα⊃scanα⊃line¬εα⊂a
↓ βββ
p¬βrelativeα∀toα∀theα∀baselineα∀(¬εa¬β>0α∀movesα∀theα∀underlineα∀down),α∀withα∪line
↓ βββ∞¬βthickness¬εα⊃t¬βα⊃(extendingα⊃downwardα⊃fromα⊃scanα⊃line¬εα⊃a¬βα⊃if¬εα⊃t¬β>1).α"Seeα⊂the
↓ βββ4¬βexampleα∪atα∪theα∪endα∪ofα∪theseα∪commands.α&NOTEα∪--α∪Thisα∪commandα∪is
↓ βββJ¬βinefficientα2(when¬εα2t¬β>1)α2becauseα1XGPSERα1doesn'tα1support
↓ βββp¬βmore-than-one-scanlineα∂underscoresα∞andα∞henceα∞POXα∞mustα∞breakα∞upα∞this
↓ βββ
∞¬βcommandα∩intoα∩oneα∩XGPα∩underscoreα⊃perα⊃scanα⊃line,α⊃withα⊃column-selects
↓ βββ
,¬βbetweenα
each.
↓ ↓Hβ
H¬
1¬∂{¬β↓ ββ(Uα
Jα
CRα
o)α
--α
startα
underline,α
seeα
UUOα
manualα
underα
XGPα
service.
↓ ↓Hβ
`¬
1¬∂}¬εat¬β↓ ββ(Uα
Jα
CRα
o)α
--α
inα
conjunctionα
with¬
α
1¬∂{¬β,α
endα
underline,α
onα
scanα
line¬εα
a¬βα
with
↓ βββ
}¬βthickness¬εα
t¬β.
↓ α_β
≤¬βNote:αthe¬
α1¬∂{¬βαand¬
α1¬∂}¬εat¬βαcommandsαareαnoαlongerαrecommended,αbecauseαinαjustifyαmodeαifαaαline
↓ ↓Hβ
B¬βisα
brokenα
inα
theα
middleα
ofα
anα
underlinedα
portionα
ofα
text,α
POXα
hasn'tα
yetα
seenα
theα
parametersα
toα
beα
used
↓ ↓Hβ
`¬βandαmustαguessαwhatαtheyαareα(currentlyαPOXαassumesαtheyαwillαbe¬∂α
=2;=2;¬βα
butα
warnsα
theα
userα
inα
case
↓ ↓Hβ
}¬βheα∂didn'tα∂expectα∞theα∞lineα∞toα∞beα∞brokenα∞and/orα∞didn'tα∞wantα∞toα∞useα∞thoseα∞parameters).α≤Toα∞avoidα∞this
↓ ↓Hβ∞∀¬βproblem,α
useα
theα
newer¬
α
1¬∂[¬εat¬βα
and¬
α
1¬∂]¬βα
pairα
ofα
commands.
↓ ↓Hβ∞2¬
1¬∂[¬εat¬β↓ ββ(UαJαCRαo)α--αstartαunderline,α
specifyingα
starting-scanlineα
andα
thicknessα
at
↓ βββ∞X¬βtheα∂outsetα∂soα∂thatα∂theα∞underlineα∞canα∞beα∞brokenα∞acrossα∞severalα∞linesα∞of
↓ βββ∞v¬βoutputα
automaticallyα
(especiallyα
usefulα
inα
justifyα
mode).
↓ ↓Hβ∂∩¬
1¬∂]¬β↓ ββ(Uα
Jα
CRα
o)α
--α
endαunderlineαusingαparametersαspecifiedαinαtheαpreceeding
↓ βββ∂*¬
1¬∂[¬εat¬βα
command.
↓ 	∃¬α 8↓ βxβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∃¬α 9↓ βxβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ βCβ↓f¬βENTER SPECIAL-FORMATTING MODES WITH ALTERNATE MARGINS
↓ ↓Hβαα¬
1¬∂j¬β ¬
1¬∂r¬β or ¬
1¬∂c¬β↓ ββ(U)α--αsameαas¬
α1¬∂J¬
α1¬∂R¬βαor¬
α1¬∂C¬βα(respectively)αexceptαtheyαsetα
upα
temporary
↓ βββα"¬βmarginsα
fromα
registers¬∂α
l¬βα
and¬∂α
r¬β,α
thenα
restore¬∂α
L¬βα
and¬∂α
R¬βα
toα
theirαoldαvalues
↓ βββα@¬βuponα⊂exit.α∨[Noteα∂thatα∂a¬¬α∂<CR>¬βα∂occurringα∂insideα∂oneα∂ofα∂theseα∂commands,
↓ βββα\¬βsuchα∩asα∩when¬¬α∩<CR>¬βα∩onα⊃inputα⊃terminates¬
α⊃1¬∂r¬βα⊃or¬
α⊃1¬∂c¬β,α⊃willα⊃setα⊃theα⊃page
↓ βββα|¬βprinterαatαthe¬∂αl¬βαratherαthan¬∂αL¬βαmargin.α⊗Thus,αalthoughαonlyαthe¬∂αr¬βα
register
↓ ββββ~¬βneedsαtoαbeαloadedαforαtheαrightifyαper-se,αthe¬∂αl¬βαregisterαmustαbeα
loaded
↓ ββββ8¬βtoα
somethingα
reasonableα
forα
itα
toα
terminateα
with¬¬α
<CR>¬βα
correctly.]
↓ ∧∨ββt¬βGENERATING AND QUOTING SPECIAL CHARACTERS
↓ ↓Hβ∧⊂¬
1¬∂'¬¬<OCTAL DIGITS>¬∂;¬β  ↓ βS(U)α--α
acceptsα
anα
octalα
valueα
andα
transmitsα
itα
precededα
byα
aα
rubout.
↓ βββ∧0¬βThisα
isα
usedα
forα
printingα
theα
charactersα
thatα
areα
hiddenα
underα
octalα
values
↓ βββ∧N¬β0,11,12,14,15α
andα
177.α~WARNINGα
--α
Octalα
valuesα
ofα
1α
thruα
4α
willα
cause
↓ βββ∧l¬βXGP-escapeαtoαoccur,αthenαtheαXGPαserviceαwillαeatαoneαorαmoreαbytesαof
↓ βββ¬
¬βwhateverα
happensα
toαbeαnextαinαtheαoutputαfile.α⊗Theαresultαisαthatαifαyou
↓ βββ¬(¬βhaveα∞theα∞simulatorα
on,α
orα
forα
anyα
otherα
reasonα
cannotα
predictα
whatα
the
↓ βββ¬F¬βnextα
bytesα
generatedα
willα
be,α
unpredictableα
thingsα
mayα
occur.α_Theα
only
↓ βββ¬d¬βreasonα∂POXα∂doesα∂notα∂generateα∂anα∂errorα∂isα∂becauseα∂Ralphα∂Gorinα∂insists
↓ βββε¬βthatα∞oldα∞filesα∞thatα∞doα∞suchα∞thingsα∞as¬
α∞1¬∂'3;↓↓¬βα∞(insteadα∞ofα
theα
preferable
↓ βββε≡¬
1¬∂←'201;¬
1¬∂Y¬β)α∀willα∀continueα∀toα∀workα∀asα∀theyα∀alwaysα∀did.α'(Note,α∪the
↓ βββε<¬βfunctionα⊃ofα⊃thisα⊃commandα⊃isα⊃modifiedα⊃byα⊃the¬
α⊂1¬∂⊂'1000;¬βα⊂or¬
α⊂1¬∂⊂'2000;
↓ βββεZ¬βcommand.)α$Inα⊃modesα⊃otherα⊃thanα⊃U,α⊃itα⊃isα⊃necessaryα⊃toα⊃use¬
α⊃1¬∂A'¬¬<OCTAL
↓ βββεz¬¬DIGITS>¬∂;¬βα⊂toα⊂getα⊂thisα⊂effect,α∂andα∂becauseα∂thatα∂commandα∂doesα∂theα∂"right"
↓ βββπ_¬βthingα⊂inα⊂allα⊂casesα⊂insteadα⊂ofα⊂theα⊂weirdnessesα∂discussedα∂aboveα∂forα∂this
↓ βββπ6¬βcommand,α
itα
isα
preferableα
evenα
inα
Uα
mode.
↓ ↓HβπR¬
1¬∂"¬¬<CH>¬β↓ ββ(Uα
[J*]α
[CR*]α
[o]α
A)α
--α
quoteα
theα
character¬¬α
<CH>¬β.α_Inα
modesα
(Uα
Jα
CR)α
this
↓ βββπr¬βmeansα
placingα
aα
ruboutα
inα
frontα
↓&onlyα
ifα
necessary↓)ααα
toα
makeα
theα
XGPα
printα
it
↓ βββλ⊂¬βinα≤theα≤currentα≠fontα≠insteadα≠ofα≠performingα≠anyα≠specialα≠function.
↓ βββλ.¬βSpecial-functionα
isα
alsoα
suppressedαasαfarαasαtheαjustificationαalgorithmαis
↓ βββλL¬βconcerned,αthusαaαspaceαcharacterαquotedαbyαthisαcommandαwon'tαcauseα
a
↓ βββλh¬βword-break.α_Ifα
theα
current¬
α
1¬βαcharacterαisαquoted,αitαwillαgoαthroughαasαa
↓ βββ	λ¬βcharacterα
insteadα
ofα
causingα
aα
brickα
commandα
toα
begin.α_Onlyα
ruboutαand
↓ βββ	&¬βnullα∂mayα∂notα∂beα∂quotedα∂byα∂thisα∂command.α≡Inα∂modeα∞(A)α∞nothingα∞special
↓ βββ	B¬βhappensαexceptαthatαif¬¬α<CH>¬βαisα
theα
current¬
α
1¬βα
characterα
orα
aα
commaα
orα
one
↓ βββ	b¬βofα∩theα∩nestingα∩charactersα∩beingα∩used,α∩theyα∩areα⊃passedα⊃asα⊃characters
↓ βββ
¬βinsteadα∪ofα∪causingα∪theirα∪usualα∪specialα∪functionα∪toα∪occurα∪(beginα∪brick
↓ βββ
≡¬βcommand,αbreakαtoα
nextα
argument,α
changeα
nestingα
depth,α
respectively).α∀In
↓ βββ
<¬βmodesα∂Jα∂CRα∂andα∞o,α∞thisα∞commandα∞isα∞currentlyα∞implementedα∞onlyα∞forα∞the
↓ βββ
Z¬βcharactersα
thatα
doα
notα
requireα
theα
'177α
prefix.
↓ ↓Hβ
v¬
11¬β↓ ββ(Uα∩Jα∩CRα∩A)α∩[noα∩longerα∩recommended,α∩use¬
α∩1¬∂"¬
1¬βα⊃insteadα⊃(seeα⊃previous
↓ βββ⊗¬βcommand)]α
--α
quotesα
theα
escapeαcharacterα--αtakesαprecedenceαoverαany
↓ βββ4¬βotherα∂commandα∂thatα∂parsesα∂theα∂sameα∂dueα∂toα∂coincidenceα∞ofα∞characters,
↓ βββR¬βtherebyα≡makingα≡thatα≡otherα≡commandα≥unavailableα≥--α≥Pleaseα≥use
↓ βββn¬
1¬∂⊂'1000001;¬βα∂whichα∂disablesα∂thisα∂cruftyα∂oldα∂undesirableα∂andα∞unneeded
↓ βββ
∞¬βfeature,α
andα
thusα
unhidesα
theα
otherα
command.
↓ ↓Hβ
$¬
1¬∂A¬εq¬β↓ ββ(Uα
[J*]α
A)α
--α
theα
sevenα
low-orderα
bitsα
of¬εα
q¬βα
areα
assembledα
intoα
anα
ASCII
↓ βββ
H¬βcharacter,α∂and¬
α∂1¬∂"¬βα∂isα∂performedα∂onα∂thatα∂character.α≡Note,α∂althoughα∂this
↓ βββ
h¬βcommandα⊗isα⊗notα⊗yetα∃implementedα∃insideα∃justifyα∃orα∃centerify/rightify
↓ βββ
ε¬βmodes,α
ifα
youα
justαwantαtoαgenerateαaαfunnyαcharacterαyouαdon'tαhaveαon
↓ βββ
$¬βyourα
terminal,α
suchα
asα
curlyα
brace,α
theα
followingα
trickαmayαbeαused:α⊗Call
↓ βββ
B¬βtheα∞EVALα∞macroα∞(definedα
inα
theα
sectionα
onα
macrosα
withα
arguments)α
with
↓ βββ
↑¬βthe¬
α
1¬∂A¬β...α→commandα
asα
argument,α
forα
example¬∂α
\!EVAL(\A'176;);¬β,α
which
↓ βββ
}¬βisα
legalα
inα
allα
modes.α_Ofα
course,α
thisα
willα
notα
haveα
theα
rightα
effectα
ifα
the
↓ βββ∞≤¬βfunnyα
characterα
requiresα
aα
ruboutα
precedingα
it.
↓ ↓Hβ∞2¬
1¬∂D¬εq¬β↓ ββ(UαJαCRαoαA)α--αconverts¬εαq¬βαintoαaαstringαofαdecimalα
digitsα
representingα
its
↓ βββ∞X¬βvalue,α
like¬∂α
CVS¬βα
inα
SAIL.
↓ ↓Hβ∞t¬
1¬∂a¬β↓ ββ(Uα
Jα
CRα
oαA)α--αeatsαtheαnextαcharacterαandαloadsαitsαASCIIαvalueαintoαthe
↓ βββ∂∀¬βac.α≡Thisα∞isα∞usefulα∞forα∞munchingα∞throughα∞aα∞stringα∞thatα∞isα∞theα∞bodyα∞ofα∞a
↓ βββ∂2¬βmacroα
orα
anα
argumentα
toα
one.α∀(Theα
usualα
techniqueα
isα
toα
haveα
aα
recursive
↓ 	∃¬α 9↓ βxβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 10↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ βββ↓H¬βmacroα∞withα∞argumentα∞Xα∞(say)α∞thatα∞callsα∞itselfα
via¬∂α
\!foo(\a⊗X⊗);¬β.α~This
↓ βββ↓f¬βway,αeachαtimeαtheαrecursiveαcallαisαdoneαtheαnewα
invocationα
hasα
theα
next
↓ βββα∧¬βcharacter'sα
valueα
inα
theα
acα
andα
theα
restα
ofα
theα
stringα
asα
theα
argumentαX.
↓ βββα"¬βAα
dummyα
characterα
tackedα
onα
theα
endα
byα
aα
top-levelα
macroα
canαbeαused
↓ βββα@¬βtoα
terminateα
theα
recursion.)
↓ ¬[βα|¬βSTACK OPERATIONS
↓ ↓Hββ_¬
1¬∂P¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
pushα
ac.
↓ ↓Hββ6¬
1¬∂p¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
popα
ac.
↓ ↓HββN¬
1¬∂Q¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
pushα
register¬εα
q¬β.
↓ ↓Hββl¬
1¬∂q¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
popα
toα
register¬εα
q¬β.α
--α
READONLYα
operandα
notα
allowed.
↓ ↓Hβ∧⊂¬
1¬∂#¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
pushα
theα
currentα
fontα
numberα
(octalα
0α
toα
17).
↓ ↓Hβ∧.¬
1¬∂G¬β↓ ββ(Uα⊃Jα⊂o)α⊂--α⊂popα⊂aα⊂numberα⊂offα⊂theα⊂stackα⊂andα⊂useα⊂thatα⊂numberα⊂toα⊂doα⊂a
↓ βββ∧L¬βfont-selectα∪like¬
α∪1¬∂F¬βα∩--α∩mustα∩beα∩inα∩theα∩rangeα∩octalα∩0α∩toα∩17α∩toα∩work
↓ βββ∧l¬βcorrectlyα
--α
notα
yetα
fullyα
supported.
↓ β]β¬(¬βTEXT-MODE VECTORS (SEE ALSO ATOMIC VECTOR OVERLAY)
↓ ↓Hβ¬C¬
1¬∂V¬εx¬β↓#n1¬εy¬β↓#n1¬εx¬β↓#n2¬εy¬β↓#n2¬εw
↓ ↓Hβ¬m¬β  ↓ ββ(U)α∞--α∞drawα∞aα∞vectorα∞of¬αα∞HORIZONTAL¬βα∞width¬εα∞w¬βα
betweenα
(¬εx¬β↓#s1↓#,¬εy¬β↓#s1↓#)α
and
↓ βββε∩¬β(¬εx¬β↓#s2↓#,¬εy¬β↓#s2↓#)α∃--α∃vectorsα∃onα∃theα∃XGPα∃(atα∀SU-AI)α∀areα∀actuallyα∀tallα∀skinny
↓ βββε=¬βparallelogramsαwhichαgetαincreasinglyα
bad-lookingα
asα
theyα
approachα
being
↓ βββε`¬βhorizontalα
--α
POXα
doesα
nothingα
toα
improveα
theα
looksα
ofα
diagonalα
vectors,
↓ βββπβ¬βbutα∞exactlyα∞horizontalα∞vectorsα∞(whichα
wouldn'tα
workα
atα
allα
normally)α
are
↓ βββπ&¬βreplacedα⊃byα⊃verticalα⊃vectorsα⊃thatα⊃areα⊃veryα⊃veryα⊃wideα⊃andα⊃veryα⊃very
↓ βββπA¬βshort).α⊗CoordinatesαareαmeasuredαinαusualαXGPαcoordinates.¬εα⊗x¬βα
increases
↓ βββπd¬βfromαleftαtoαright,αwith¬εαx¬β=0αbeingαtheαleftα
edge.¬εα∀y¬βα
increasesα
fromα
topα
to
↓ βββλπ¬βbottom,α⊂with¬εα⊂y¬β=0α⊂beingα⊂theα⊂topα⊂edge.α∨Vectorsα∂noα∂longerα∂haveα∂toα∂be
↓ βββλ*¬βpresentedα∂toα∞POXα∞withα∞MIN(¬εy¬β↓#s1↓#,¬εy¬β↓#s2↓#)α∞inα∞ascendingα∞sequenceα∞becauseα∞POX
↓ βββλU¬βnowα∩sortsα∩themα∩intoα∩correctα∩sequenceα∩automatically,α⊃butα⊃becauseα⊃the
↓ βββλx¬βsystemα∞requiresα
bothα
textα
andα
vectorsα
toα
beα
sortedα
correctly,α
youα
must
↓ βββ	≠¬βusuallyα⊃enableα⊃theα⊃textα⊃linefeedα⊃simulatorα⊂(seeα⊂noteα⊂2)α⊂wheneverα⊂you
↓ βββ	>¬βwantα∞ordinaryα
textα
toα
appearα
belowα
anyα
vectorα
orα
overlayα
onα
theα
same
↓ βββ	a¬βpage.α_Oneα
finalα
warningα
withαvectorsαisαnotαtoαattemptαtoαdoαanythingαat
↓ βββ
∧¬βtheα∞veryα∞topα∞ofα∞theα∞firstα∞pageα
ofα
outputα
(theα
systemα
needsα
timeα
toα
get
↓ βββ
'¬βstartedα
loadingα
buffers).
↓ ↓Hβ
B¬
1¬∂v¬εx¬β↓#n1¬εy¬β↓#n1¬εx¬β↓#n2¬εy¬β↓#n2¬εt
↓ ↓Hβ
l¬β  ↓ ββ(U)α
--α
sameα
as¬
α
1¬∂V¬εx¬β↓#n1¬εy¬β↓#n1¬εx¬β↓#n2¬εy¬β↓#n2¬εw¬βα
except¬εα
t¬βα
isα
thicknessα
perpendicularα
to
↓ βββ↔¬βtheα
directionα
ofα
theα
vectorα
inα
allα
casesα
--α
i.e.,α
forα
non-horizontalα
vectors
↓ βββ-¬εw¬β=SQRT(¬εt¬β↓#
2↓#((¬εx¬β↓#s1↓#-¬εx¬β↓#s2↓#)↓#
2↓#+(¬εy¬β↓#s1↓#-¬εy¬β↓#s2↓#)↓#
2↓#)/(¬εy¬β↓#s1↓#-¬εy¬β↓#s2↓#)↓#
2↓#),α?αwhereasα?α
exactly
↓ βββ[¬βhorizontalα
vectorsα
areα
fixedα
upα
byα
thisα
commandα
theα
sameα
asα
byα
the¬
α
1¶V
↓ βββ
¬βcommandα--αnoteαthatαvectorsαwhichαareα
almostα
butα
notα
exactlyα
horizontal
↓ βββ
#¬βstillα⊃comeα⊃outα⊂quiteα⊂uglyα⊂andα⊂usuallyα⊂overshootα⊂theirα⊂specifiedα⊂bottom
↓ βββ
F¬βends.
↓ ∧~β
α¬βCONTROLLING INTERLINE AND INTERWORD SPACING
↓ ↓Hβ
≡¬
1¬∂λ¬β↓ ββ(U)α
--α
useα
theα
contentsα
ofα
theα
acα
toα
setαtheαinterlineαspacing,αthatαis,αthe
↓ βββ
>¬βminimumα∪numberα∪ofα∪blankα∪scanα∪linesα∪(1/200α∩inch)α∩betweenα∩theα∩very
↓ βββ
\¬βbottomα
ofα
eachα
lineα
ofαtextα(includingαsubscripts)αandαtheαveryαtopαofαthe
↓ βββ
z¬βnextα∂lineα∂(includingα∂superscripts).α≡Thisα∂parameterα∂hasα∂differentα∞effects
↓ βββ∞_¬βdependingα
onα
whetherα
theα
simulatorα
isα
enabled.α⊗Withαtheαsimulatorαon,αif
↓ βββ∞6¬βthisαparameterαisαnegativeα
itα
allowsα
overlapping,α
ifα
zeroα
itα
allowsα
bumping,
↓ βββ∞T¬βandα⊃ifα⊃positiveα⊃itα⊂forcesα⊂aα⊂gap,α⊂i.e.,α⊂itα⊂isα⊂completelyα⊂logical.α Withα⊂the
↓ βββ∞r¬βsimulatorα∞offα∞itα∞doesn'tα∞takeα
effectα
untilα
afterα
theα
nextα
textα
line,α
andα
its
↓ βββ∂⊂¬βinterpretationα⊃dependsα⊃onα⊃itsα⊃sign:α"positiveα⊃isα⊃theα⊃sameα⊃asα⊂withα⊂the
↓ βββ∂.¬βsimulatorα
on,α
zeroα
orαnegativeαmeansαsystemαdefaultαwhateverαitαisαtoday
↓ 	∞¬α 10↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 11↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ βββ↓H¬β(recentlyα
itα
hasα
hadα
theα
valueα
4).
↓ ↓Hβ↓d¬
1¬∂ε¬β↓ ββ(U)α∞--α∞useα∞theα∞contentsα∞ofα∞theα∞acα∞toα∞setα∞theα∞interbaseα∞spacing,α∞i.e.,α
the
↓ βββα∧¬βminimumα
numberα
ofα
scanα
linesα
thatαbaselinesαareαforcedαapart.α⊗Whenαthe
↓ βββα"¬βsimulatorα⊗isα⊗on,α⊗thisα⊗parameterα⊗togetherα⊗withα⊗theα⊗interlineα⊗spacing
↓ βββα@¬βdetermineα∂howα∂farα∂apartα∂linesα∂willα∞beα∞(eachα∞lineα∞(afterα∞theα∞firstα∞onα∞the
↓ βββα↑¬βpage)α∞isα∞placedα∞asα∞highα∞upα∞onα∞theα∞pageα∞asα∞isα∞possibleα
withoutα
violating
↓ βββα|¬βeitherα∞constraint).α≤Whenα∞theα∞simulatorα∞isα∞off,α∞thisα∞parameterα∞isα∞ignored
↓ ββββ~¬βandαonlyα
theα
interlineα
spacingα
hasα
anyα
effect.α∀--α
Aα
logicalα
consequenceα
of
↓ ββββ8¬βtheα
aboveα
isα
thatα
ifα
theα
interlineα
spacingα
isα
veryα
negative,α
thenα
onlyα
the
↓ ββββV¬βinterbaseαspacingαhasαanyαeffect,αandαyouαgetα
evenlyα
spacedα
linesα
evenα
if
↓ ββββt¬βtheyα∞overlap;α∞whereasα∞ifα∞interbaseα∞spacingα∞isα∞negativeα∞orα
closeα
toα
zero
↓ βββ∧∩¬βandα∩interlineα∩spacingα∩isα∩reasonable,α∩thenα⊃inα⊃mostα⊃casesα⊃onlyα⊃interline
↓ βββ∧0¬βspacingα
willα
beα
inαcontrol,αandαyouαwillαgetαlinesαwithαtheαsameαamountαof
↓ βββ∧N¬βspaceα⊃betweenα⊃eachα⊃pair,α⊃evenα⊂ifα⊂differingα⊂amountsα⊂ofα⊂subscriptsα⊂etc.
↓ βββ∧l¬βcauseα
irregularα
spacingα
toα
occur.
↓ ↓Hβ¬λ¬
1¬∂≤¬β↓ ββ(U)α∪--α∪useα∪theα∪contentsα∪ofα∪theα∪acα∪toα∩setα∩theα∩maximumα∩allowedα∩gap
↓ βββ¬(¬βbetweenα
wordsαwhenαjustifying.α⊗Ifαnarrowαmargins,αcombinedαwithαaαlong
↓ βββ¬F¬βwordα∞thatα∞doesn'tα∞fitα∞onα∞aα∞lineα
andα
soα
mustα
beα
shovedα
toα
theα
nextα
line,
↓ βββ¬d¬βcausesα⊂theα⊂currentα⊂lineα⊂toα⊂haveα⊂gapsα∂betweenα∂wordsα∂thatα∂exceedα∂this
↓ βββεα¬βparameter,α∞anα∞errorα∞isα
generatedα
toα
warnα
theα
userα
thatα
theα
outputα
may
↓ βββε ¬βbeα∞ugly.α≤Theα∞userα∞mayα∞thenα
changeα
theα
wordingα
orα
marginsα
slightlyα
to
↓ βββε>¬βtryα⊂toα⊂alleviateα⊂thisα⊂condition.α Ifα∂theα∂acα∂isα∂currentlyα∂non-positive,α∂the
↓ βββε\¬βcheckα
isα
disabledα
(defaultα
situation).
↓ βaβπ_¬βRESET VERTICAL POSITION FOR TEXT (SEE ALSO OVERLAYS)
↓ ↓Hβπ.¬
1¬∂Y¬εq¬β↓ ββ(U)α--αsetαabsoluteαYαpositionαforαtopαscanα
lineα
ofα
thisα
textα
lineα
relativeα
to
↓ βββπT¬βtopα
ofα
pageα
(ifα
noα
textα
lineα
isα
currentlyα
active,α
applyα
toα
theα
nextα
textα
line).
↓ βββπj¬βIncreasing¬εα
q¬βα
movesα
downα
theα
page!α_Textα
afterα
thisα
lineα
willα
beα
belowα
it
↓ βββλ⊂¬βonα⊂theα⊂pageα⊂unlessα⊂POXα⊂orα⊂theα⊂XGPSERα∂decidesα∂itα∂isα∂tooα∂closeα∂toα∂the
↓ βββλ.¬βbottomα∞ofα∞theα
pageα
andα
insertsα
aα
pageα
mark.α~Doα
notα
useα
thisα
command
↓ βββλL¬βinsideα∞yourα∞EVERYPAGEα∞macroα∞(useα∞overlaysα∞forα
allα
printingα
fromα
inside
↓ βββλb¬βEVERYPAGEα
macro)α
--α
WARNING:α↔If¬εαq¬βαisαveryαlargeαitαwillαprobablyαmake
↓ βββ	λ¬βtheα
XGPα
spoolerα
goα
beserk.
↓ ↓Hβ	≡¬
1¬∂y¬εq¬β↓ ββ(U)α∩--α∩theα∩simulatorα∩maintainsα∩twoα∩parametersα∩thatα∩tellα∩itα∩whereα⊃the
↓ βββ	D¬βbaselineα∂andα∂theα∂last-scanlineα∂wereα∂inα∂theα∂previously-emittedα∂textα∞line,
↓ βββ	b¬βwhichα
areα
usedα
byα
theα
simulatorα
toα
decideα
whereα
theα
nextα
textα
lineα
will
↓ βββ	x¬βbeαplaced.α⊗Thisαcommandαadds¬εαq¬βαtoαwhateverαisα
inα
theseα
twoα
parameters
↓ βββ
≡¬βatαtheαmoment,αthusαforcingαtheαnextαtextαlineαdownαbyαthatα
amountα
(upα
if
↓ βββ
4¬εq¬βαisαnegative)αorαforcingα
itα
toα
theα
nextα
pageα
ofα
output.α∀Inα
theα
caseα
where
↓ βββ
Z¬βtheα
lineα
isα
forcedα
ontoα
theα
nextα
page,α
itαwillαbeαplacedαexactlyαatαtheαtop
↓ βββ
p¬βmarginα
regardlessα
ofα
theα
sizeα
of¬εα
q¬β,α
soα
thisα
commandα
isα
especiallyα
useful
↓ βββ⊗¬βforαplacingαaαgapαjustαbeforeαbeginningαaαnewαsectionαinα
aα
document.α∀Ifα
a
↓ βββ2¬
1¬∂Y¬βαcommandαhasαbeenαdoneαandαnotαyetαactedαupon,αtheαeffectαofα
the¬
α
1¶y
↓ βββP¬βcommandα∃isα∃toα∀addα∀toα∀the¬
α∀1¬∂Y¬βα∀valueα∀insteadα∀ofα∀addingα∀toα∀theα∀two
↓ βββp¬βparameters.
↓ ↓Hβ
ε¬
1¬∂B¬εq¬β↓ ββ(UαJα
CRα
oα
A)α
--α
setα
bottomα
marginα
inα
POXα
toα
be¬εα
q¬βα
(relativeα
toα
topα
ofα
page,
↓ βββ
,¬βinα1/200αinchαunits).α⊗Thisαcommandαonlyαhasαeffectα
withα
theα
simulatorα
on.
↓ βββ
J¬βIfα
thisα
isα
usedα
toα
makeα
largerα
thanα
normalα
bodiesα
ofα
text,α
totalα
pageα
size
↓ βββ
`¬βmustα
beα
increasedα
beforehandα
withα
the¬
α
1¬∂e¬εq¬βα
command.
↓ ↓Hβ
}¬
1¬∂b¬εq¬β↓ ββ(Uα⊃Jα⊃CRα⊃oα⊃A)α⊃--α⊃readα⊃theα⊃currentα⊃bottom-marginα⊃andα⊂putα⊂itα⊂in¬εα⊂q¬β.α⊂--
↓ βββ
$¬βREADONLYα
operandα
notα
allowed.
↓ ↓Hβ
:¬
1¬∂T¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
setα
topα
marginα
inα
POXα
(effectiveα
onlyα
ifα
simulatorα
isα
on).
↓ βββ
`¬βThisαwillαalwaysα
affectα
laterα
pages,α
butα
willα
affectα
theα
currentα
pageα
onlyα
if
↓ βββ
}¬βnoαtextαhasαyetαbeenαemittedαonαitα(technicallyα
ifα
noα
completeα
lineα
hasα
yet
↓ βββ∞≤¬βbeenα
emittedα
onα
theα
page).
↓ ↓Hβ∞2¬
1¬∂t¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
readα
currentα
topα
marginα
andα
storeα
itα
in¬εα
q¬β.α
--α
READONLY
↓ βββ∞X¬βoperandα
notα
allowed.
↓ ↓Hβ∞n¬
1¬∂e¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
changeα
totalα
pageα
sizeα
to¬εα
q¬βα
scanlines.α_Ifα
thisα
isα
usedα
to
↓ βββ∂∀¬βmakeα⊃shortα⊃pages,α⊃bottomα⊃marginα⊃mustα⊃beα⊃movedα⊃upα⊃outα⊃ofα⊃theα⊃way
↓ βββ∂*¬βbeforehandα
byα
the¬
α
1¬∂B¬εq¬βα
command.α→Ifα
theα
valueα
givenα
isα
zero,α
pagesα
will
↓ 	∞¬α 11↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 12↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ βββ↓H¬βbeα
ofα
varyingα
length,α
withα
theα
bottomα
cutα
beingα
justα
belowα
theα
lastα
text
↓ βββ↓f¬βemittedα
onα
eachα
page.α_(Thusα
youα
mayα
wantα
toα
putα
explicitαblankαlinesαat
↓ βββα∧¬βtheα⊃bottomα⊃ifα⊃you'reα⊃doingα⊂this.)α Theα⊂bottomα⊂marginα⊂isα⊂stillα⊂usedα⊂for
↓ βββα"¬βdeterminingα
whenα
toα
forceα
goingα
toα
aα
newα
page.
↓ α_βα@¬βIMPORTANT ADDENDUM:
↓ ↓Hβα↑¬β  ↓ ββTheα
spoolerα
hasα
noα
facilityα
forα
dynamicallyα
changingα
pageα
size.α_Theα
last
↓ βββαz¬
1¬∂e¬βα
givenα
inα
aα
POXα
sourceα
fileα
affectsα
theα
wholeα
fileα
byα
sendingα
aα
switch
↓ ββββ~¬βtoα
theα
spooler.α↔Therefore,αthisαcommandαshouldαbeαgivenαexactlyαonceαat
↓ ββββ8¬βtheα
startα
ofα
theα
POXαfile,αtoαavoidαconfusionαifαtextαwereαtoαbeαgenerated
↓ ββββV¬βBELOWα∞theα∞edgeα
ofα
theα
pageα
BEFOREα
POXα
wasα
toldα
ofα
theα
correctα
page
↓ ββββt¬βsize,αandαnotαagain.α⊗(Theαotherαcommands,αsettingα
topα
andα
bottomα
margin,
↓ βββ∧∩¬βmayα
beα
dynamicα
fromα
pageα
toα
page,α
ifα
theα
simulatorα
isα
on.)
↓ ↓Hβ∧L¬
1¬∂s¬¬<CH>¬β↓ ββ(Uα∞Jα∞CR)α∞--α∞storeα
currentα
x,,yα
(columnα
inα
leftα
half,α
scanlineα
inα
rightα
half)
↓ βββ∧l¬βlocationα∞ofα∞cursorα∞(offsetα∞byα∞anyα
baselineα
adjustα
inα
effect)α
intoα
register
↓ βββ¬
¬¬<CH>¬βα
asα
soonα
asα
thatα
informationα
isα
availableα
(inαjustifyαthisαisn'tαuntilαthe
↓ βββ¬(¬βcurrentαlineαhasαbeenαfinishedαandαhasαpassedαthroughαtheαsimulator).α⊗To
↓ βββ¬F¬βbeα
sureα
thisα
informationα
hasα
beenα
storedα
byα
theα
timeα
youα
lookα
atα
it,α
put
↓ βββ¬d¬βzeroα∀inα∀theα∀registerα∪beforeα∪youα∪executeα∪theα∪commandα∪andα∪testα∪for
↓ βββεα¬βnonzeroα
beforeα
usingα
theα
data.
↓ ↓Hβε≡¬
1¬∂g¬¬<CH>¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
getα
someα
parameterα
(asα
determinedα
by¬¬α
<CH>¬β)α
andα
loadα
it
↓ βββε>¬βintoα
theα
accumulator.α∀Theα
followingα
areα
currentlyα
implemented:
↓ α_βεT¬
1¬∂ge¬β↓ αhBottom edge of paper (set by ¬
1¬∂e¬εq¬β command)
↓ α_βεx¬
1¬∂gλ¬β↓ αhInterline spacing (set by ¬
1¬∂λ¬β command)
↓ α_βπ⊗¬
1¬∂gε¬β↓ αhInterbase spacing (set by ¬
1¬∂ε¬β command)
↓ α_βπ4¬
1¬∂gM¬β↓ αhMode (U=1, J=2, CR=4, o=10, A=20 -- octal)
↓ α_βπR¬
1¬∂g⊂¬β↓ αhUses old contents of ac (should be 0 or 1) to get special-features word
↓ α_βπp¬
1¬∂gm¬β↓ αhUses old ac contents as memory address to peek in core image
↓ α_βλ∞¬
1¬∂gp¬β↓ αhReturns 1 if EVERYPAGE macro not yet called on this page, 0 otherwise
↓ α_βλ,¬
1¬∂gA¬β↓ αhReturns amount of space still available on this justify-mode line
↓ ↓HβλJ¬
1¬∂∃¬¬<CH>¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
getα
dateα
andα
timeα
last-writtenα
forα
currentα
inputα
fileα
and
↓ βββλj¬βputαitαintoαregister¬¬α<CH>¬βα
inα
theα
follwingα
format:α∀Leftα
halfα
isα
inα
systemα
date
↓ βββ	λ¬βformat,α⊗i.e.α,((YEAR-1964)*12+(MONTH-1))*31+(DAY-1).α*Rightα∃halfα∃is
↓ βββ	&¬βminutesα∂pastα∂midnight,α∂i.e.,α∞HOUR*60+MINUTE.α≤Ifα∞thisα∞commandα∞isα∞issued
↓ βββ	D¬βfromα∞theα∞bodyα∞ofα∞aα∞macroα∞(orα∞argument)α∞patchedα∞intoα
inputα
stream,α
the
↓ βββ	b¬βfileα⊂inquiredα∂isα∂theα∂mostα∂recently-readα∂file,α∂whichα∂canα∂beα∂theα∂fileα∂from
↓ βββ
¬βwhichα
theα
macroα
wasα
called,α
orα
someα
requiredα
sourceα
fileα
thatα
hasα
been
↓ βββ
≡¬βinsertedα
sinceα
theα
timeα
theα
macroα
wasα
started.
↓ ∧xβ
Z¬βMISC. COMMANDS NOT OFTEN USED
↓ ↓Hβ
p¬
1¬∂u¬εq¬β↓ ββ(Uα
Jα
CRα
oα
A)α
--α
generatesα
andα
executesα
aα
CALLIαUUOαusingαtheαrightαhalf
↓ βββ∞¬βof¬εα
q¬β,α
thus¬
α
1¬∂u'400012;¬βα
willα
performα
a¬∂α
CALLIα
400012¬βα
--α
theα
acα
isα
used
↓ βββ4¬βtoα∞supplyα∞dataα∞toα∞someα∞UUO's,α∞andα∞toα∞returnα∞dataα∞toα
theα
programα
after
↓ βββR¬βsomeα
UUO'Sα
--α
ifα
theα
acα
fieldα
ofα
theα
instructionα
isα
usedα
inα
aα
specialα
way
↓ βββp¬βotherα
thanα
merelyα
pointingα
toα
data,α
thenα
itα
isn'tα
guaranteedα
toα
workα
the
↓ βββ
∞¬βwayα∞youα∞wantα∞--α∞theα∞.SKIP.α∞flagα∞(aα
laα
SAIL)α
isα
returnedα
inα
register¬∂α
u¬βα
--
↓ βββ
,¬βseeα
theα
UUOα
manualα
forα
details.
↓ ↓Hβ
H¬
1¬∂S¬β↓ ββ(U)α↔--α↔generatesα↔aα⊗sampleα⊗ofα⊗theα⊗currently-selectedα⊗fontα⊗--α⊗type
↓ βββ
h¬∂HELP FONT¬βα
forα
otherα
waysα
toα
getα
samplesα
ofα
fonts.
↓ β[β
∨¬Examples of commands using register arguments etc.
↓ α_β
@¬βInα⊂thisα⊂writeup,α⊂the¬
α⊂1¬∂j¬βα⊂commandα⊂isα⊂usedα⊂toα⊂generateα⊂theα⊂indentedα⊂paragraphα∂ofα∂description
↓ ↓Hβ
X¬βalongsideα⊃theα⊃syntaxα⊃ofα⊃eachα⊃command.α"Theα⊂sequence¬
α⊂1¬∂←¬εq¬
1¬∂→.¬βα⊂isα⊂usedα⊂sometimesα⊂toα⊂setα⊂column
↓ ↓Hβ
}¬βpositionα
forα
single-lineα
descriptionsα
andα
toα
alignα
textα
inα
someα
ofα
theα
tabularα
presentations.
↓ ↓Hβ∞:¬∧Example showing how to do a simple subscript:
↓ ↓Hβ∞V¬
1¬∂F3x¬
1¬∂∪1¬
1¬∂⊗+x¬
1¬∂∪2¬
1¬∂⊗+...+x¬
1¬∂∪n¬
1¬∂⊗+x¬
1¬∂∪n+1¬
1¬∂⊗
↓ ↓Hβ∞v¬βx↓#s1↓#+x↓#s2↓#+...+x↓#sn↓#+x↓#sn+1↓#
↓ ↓Hβ∂2¬∧Example of making five columns on a page, $ is the escape char:
↓ 	∞¬α 12↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 13↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬∂$←R$-L$/'5;$→W$;↓ εHregister W contains width of a column
↓ ↓Hβ↓f¬∂$←L$→1$+W$→2$+W$→3$+W$→4$+W$→5$;↓ εHregisters 1,2,3,4,5 contain the column loc's
↓ ↓Hβα∧¬∂$←1$→.Hello$←2$→.This$←3$→.Is$←4$→.A$←5$→.Test.
↓ ↓Hβα"¬∂$←1$→.These$←2$→.Columns$←3$→.Are$←4$→.Nicely$←5$→.Aligned.
↓ ↓Hβα@¬βHello↓ βNThis↓ ¬TIs↓ πZA↓ 	`Test.
↓ ↓Hβα↑¬βThese↓ βNColumns↓ ¬TAre↓ πZNicely↓ 	`Aligned.
↓ ↓Hββ~¬∧Example of hidden characters, $ is the escape char:
↓ ↓Hββ8¬∂$FF$'0;$'11;$'12;$'14;$'15;$'177;
↓ ↓HββV¬∂	

↓ ↓Hβ∧∩¬∂$F1This shows a crufty way to $←.$→1underline$U1=3;=2;. a word in a line of text.
↓ ↓Hβ∧+¬This shows a crufty way to underline↓ ∧↑↓!β↓β↓ ∧↑↓!∧↓β↓ ¬a a word in a line of text.
↓ ↓Hβ∧l¬∂$F3$J↓ αHThis paragraph is an example of how to insert something
↓ ↓Hβ¬
¬∂like X$←.$→1$∩n$←.$→2$←1$→.$∪i$←.$~2$→.$⊗ in the middle of a paragraph of
↓ ↓Hβ¬(¬∂justified text using the "." register that represents the current column
↓ ↓Hβ¬F¬∂$←.$→1$∩loca$←.$→2$←1$→.$↓=05;posi$←.$~2$→.$⊗tion
↓ ↓Hβ¬d¬∂relative to the beginning of the current word.$.
↓ α_β¬u¬βThisαparagraphαisαanαexampleαofαhowαtoαinsertαsomethingαlikeαX↓#
n↓#sαqi↓#α∪inαtheαmiddleαofαaα
paragraphα
of
↓ ↓Hβε∨¬βjustifiedα∀textα∀usingα∪theα∪"."α∪registerα∪thatα∪representsα∪theα∪currentα∪column↓#
α∪loca↓#{αOposi↓#tionα∪relativeα∪toα∪the
↓ ↓HβεJ¬βbeginningα
ofα
theα
currentα
word.
∧εw	X}+Hα∧εw	X↓UHα↓ ↓Hβπε¬∂$←=2;$→V$←;$-=100;$→A$+=27;$→B$+=45;$→C$;
∧π∩	0αP∧π∩	0ε≤-α∧π∩
yd-α↓ ↓Hβπ$¬∂$←=1200;$→a$+=10;$→b$+=30;$→c$+=30;$→d$+=10;$→e$;
↓ ↓HβπB¬∂$VaBeBV$VaBdCV$VcAbCV$VcAdCV$VbCeBV$; draw 5-point star of constant width
∧πo	X}+Hα∧πo	X↓UHα↓ ↓Hβπ}¬∂$←=2;$→V$←;$-=100;$→A$+=27;$→B$+=45;$→C$;
∧λ
	0αP∧λ
	0ε≤-β∧λ

yd-β↓ ↓Hβλ≤¬∂$←=1200;$→a$+=10;$→b$+=30;$→c$+=30;$→d$+=10;$→e$;
↓ ↓Hβλ:¬∂$vaBeBV$vaBdCV$vcAbCV$vcAdCV$vbCeBV$; draw 5-point star of constant thickness
↓ ↓Hβλv¬∂$←;$-=20;$→:$v=1400;;=1300;:=20;$; sample of a very ugly vector
∧	→
∀∀∀e↓ εβ	}¬OVERLAYS
↓ α_β
 ¬βAn¬αα
overlay¬βα
isα
likeα
aα
black-on-clearα
transparency.α_Overlaysα
canα
beα
setα
upα
byα
feedingα
themα
text
↓ ↓Hβ
>¬βorα
vectorsα
(somedayα
perhapsα
alsoα
videoα
andα
III/DDα
buffers),α
andα
severalα
overlaysα
canα
beα
placedα
over
↓ ↓Hβ
\¬βoneα
anotherα
andα
gluedα
togetherα
toα
makeα
aα
compoundα
overlay,α
whichα
thenα
canαbeαfurtherαprocessedαin
↓ ↓Hβ
z¬βsimilarα
ways.α∀Eventually,α
overlaysα
areα
placedα
inα
theα
outputα
file.
↓ α_β_¬βAllα
contentsα
ofα
anα
overlayα
areα
positionedα
relativeα
toα
anαarbitrary¬ααbasepoint¬β.α⊗Whenαoverlaysαare
↓ ↓Hβ6¬βplacedα
onα
topα
ofα
eachα
otherα
andα
glued,α
theα
x,yα
offsetα
ofα
theα
basepointαofαeachαcomponentαisαspecified
↓ ↓HβT¬βrelativeαtoαtheαbasepointαofαtheαoperationαasαaαwhole,αthusαoverlaysα
canα
beα
madeα
toα
fitα
side-by-sideα
or
↓ ↓Hβr¬βabove-and-belowα⊗orα⊗partially-overlappedα⊗orα⊗whatever.α+Defaultsα∃areα∃availableα∃inα∃someα∃ofα∃the
↓ ↓Hβ
⊂¬βoperations.
↓ α_β
.¬βInα∪typicalα∪applications,α∪overlaysα∪actα∩asα∩data,α∩andα∩macrosα∩thatα∩callα∩theα∩overlay-manipulation
↓ ↓Hβ
L¬βcommandsα
actα
asα
subroutinesα
(seeα
nextα
sectionα
forα
macros).
↓ ↓Hβ
ε¬
1¬∂o¬¬<NAME><OPEN><CH><BODY><CLOSE>
↓ ↓Hβ
&¬β  ↓ β↔(UαJαCRαoαA)α--α[Noteαthatαtheαpairαofαnestingαcharactersα(α
andα
)α
areα
not
↓ β↔β
D¬βallowedα∃inα∃thisα∃particularα∃syntax.α*Theα∀reasonα∀isα∀thatα∀theα∀syntax
↓ β↔β
b¬¬<OPEN><CH><BODY><CLOSE>¬βα
willα
representα
somethingα
likeα
anα
atom,α
withα
"("
↓ β↔β∞¬βandα
")"α
reservedα
forα
generatingα
s-expressions,α
ifα
andα
whenα
Iα
implement
↓ β↔β∞≡¬βaαsubsetαofαLISPαinsideαPOX.]α⊗If¬¬α<CH>¬βαisα
"¬∂V¬β"α
thenα
defineα
anα
atomicα
vector
↓ β↔β∞4¬βoverlayα
(syntaxα
isα
sameα
asα
the¬
α
1¬∂V¬εx¬β↓#n1¬εy¬β↓#n1¬εx¬β↓#n2¬εy¬β↓#n2¬εw¬βα
commandα
withoutα
the
↓ β↔β∞↑¬βinitial¬
α
1¬βα
character,α
effectα
(semantics)α
isα
theα
sameα
exceptαthatα(0,0)αisαat
↓ β↔β∞}¬βtheα∂relocatableα∂basepointα∂ratherα∂thanα∂atα∞theα∞upper-leftα∞cornerα∞ofα∞the
↓ β↔β∂≤¬βoutputα⊃page)α⊃elseα⊃if¬¬α⊃<CH>¬βα⊃isα⊃aα⊃periodα⊃orα⊂aα⊂fontα⊂numberα⊂thenα⊂define
↓ β↔β∂:¬βatomicα
textαoverlayαwithαtheαcurrentαfontαorαwithαfont¬¬α<CH>¬βαrespectively
↓ 	∞¬α 13↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 14↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ β↔β↓H¬β(theα∂basepointα∂isα∂setα∂atα∂theα∂intersectionα∂ofα∂theα∂leftα∂edgeα∂ofα∞theα∞first
↓ β↔β↓f¬βcharacterα∂withα∂theα∂fontα∂baseline)α∂elseα∂errorα∂--α∂Ifα∂thereα∞isα∞alreadyα∞an
↓ β↔βα∧¬βoverlayα
byα
theα
sameα
name,α
theα
oldα
oneα
mayα
orα
mayα
notα
beα
deleted,α
so
↓ β↔βα"¬βbeware.
↓ ↓Hβα>¬
1¬¬n<NAME>¬∂;¬β↓ β↔(Uα
Jα
CRα
oα
A)α
--α
loadα
parameter¬¬α
n¬βα
ofα
overlayα
intoα
ac,α
seeα
theα
following
↓ β↔βα↑¬βtable:
↓ αHβα|¬¬n¬∂↓ βHname¬β↓ ∧Hmeaning (all quantities are usually nonnegative)
↓ αHββ~¬∂1↓ βHLLIM¬β↓ ∧Hdistance from left edge to basepoint
↓ αHββ8¬∂2↓ βHRLIM¬β↓ ∧Hdistance from basepoint to right edge  (LLIM+1+RLIM = total width)
↓ αHββV¬∂3↓ βHTLIM¬β↓ ∧Hdistance from top edge to basepoint
↓ αHββt¬∂4↓ βHBLIM¬β↓ ∧Hdistance from basepoint to bottom edge  (TLIM+1+BLIM = total height)
↓ αHβ∧∩¬∂5↓ βHTLIM1¬β↓ ∧Hdistance from top nonblank scan line to basepoint (see bug 2)
↓ αHβ∧0¬∂6↓ βHBLIM1¬β↓ ∧Hdistance from basepoint to bottom nonblank scan line (see bug 2)
↓ αHβ∧L¬∂7↓ βHRMOVE¬β↓ ∧Hsame as RLIM initially, used by ¬
1¬∂H¬β command
↓ ↓Hβ∧l¬β  ↓ β↔Noteα⊃thatα⊃TLIM1α⊃andα⊃BLIM1α⊃areα⊂currentlyα⊂unsupportedα⊂becauseα⊂they
↓ β↔β¬
¬βhaven'tα
yetα
beenα
madeα
toα
workα
correctly.
↓ ↓Hβ¬&¬
1¬∂:¬¬n<NAME>¬∂;¬β↓ β↔(Uα∂Jα∂CRα∂oα∂A)α∂--α∂clobberα∂parameter¬¬α∂n¬βα∞ofα∞overlayα∞fromα∞contentsα∞ofα∞ac,
↓ β↔β¬D¬βtherebyα⊃makingα⊃itα⊃"lie"α⊃ifα⊃thisα⊃parameterα⊃isα⊂laterα⊂queriedα⊂byα⊂the¬
α⊂1¬¬n
↓ β↔β¬d¬βcommandα∂(occasionallyα∂usefulα∞toα∞interfaceα∞withα∞macros);α∞onlyα∞theα∞right
↓ β↔βεα¬βhalfwordα∂isα∂used,α∂interpretedα∂asα∂aα∂signed-halfwordα∂inα∂2'sα∞complement
↓ β↔βε ¬βnotation.
↓ ↓Hβε6¬
1¬∂&¬¬<NAME_OF_RESULT>¬∂←¬¬<NAME↓#v1↓#>¬∂,¬εx¬¬↓#v1¬εy¬¬↓#v1¬∂&¬¬<NAME↓#v2↓#>¬∂,¬εx¬¬↓#v2¬εy¬¬↓#v2¬∂&¬¬...¬∂&¬¬<NAME↓#vn↓#>¬∂,¬εx¬¬↓#vn¬εy¬¬↓#vn¬∂;
↓ ↓Hβε\¬β  ↓ β↔(Uα
Jα
CRα
oα
A)α--αcombineαoverlaysαbyαlayingαthemαatαvariousαoffsetsαand
↓ β↔βεm¬βgluingα
themα
togetherα
toα
makeα
aα
compositeα
overlayα
--α
forα
i=1,2,..,nα
theα
i↓#
th↓#
↓ β↔βπ⊂¬βcomponentα
overlayα
isα
shiftedα
soαthatαitsαbaseαpointαisαlocatedαatα(¬εx¬β↓#si↓#,¬εy¬β↓#si↓#)
↓ β↔βπ6¬βrelativeαtoα
theα
logicalα
basepointα
ofα
theα
resultantα
overlayα
(positiveα
xα
isα
to
↓ β↔βπT¬βtheα
right,α
positiveα
yα
isα
down)α
--α
theα
firstα
sixα
parametersα
areα
computed
↓ β↔βπr¬βaccordingα∃toα∃theα∃offsetsα∀andα∀parametersα∀ofα∀theα∀components,α∀what
↓ β↔βλ⊂¬βhappensα⊂toα⊂RMOVEα⊂isα⊂currentlyα⊂unsupportedα⊂--α⊂ifα⊂youα⊂leaveα∂outα∂the
↓ β↔βλ.¬βcommaα⊗andα⊗xyα⊗argumentsα⊗fromα⊗anyα⊗component,α∃itα∃willα∃placeα∃that
↓ β↔βλL¬βcomponentα
justα
toα
theα
rightα
ofα
whatα
isα
alreadyα
prepared,αandαuseα0αfor
↓ β↔βλj¬βtheα
y-offset.
↓ ↓Hβ	¬
1¬∂O¬¬<NAME>¬∂,¬εxy
↓ ↓Hβ	≡¬
1¬∂W¬¬<NAME>¬∂,¬εxy
↓ ↓Hβ	B¬
1¬∂O¬¬<NAME>¬∂;¬β↓ β↔(U)α--αoutputαoverlayαtoαXGP,αwithαbasepointαmovedαtoα
absoluteα
location
↓ β↔β	Z¬β(¬εx¬β,¬εy¬β)α--αyouαcanαoutputαanαoverlayα
randomlyα
anywhereα
onα
theα
page,α
or
↓ β↔β	x¬βyouα⊗canα⊗replaceα⊗theα⊗"¬∂,¬εxy¬β"α⊗byα⊗"¬∂;¬β"α⊗(seeα⊗syntax,α⊗atα⊗leftα⊗ofα⊗this
↓ β↔β
≡¬βparagraph)α⊂toα⊂getα⊂theα∂Gosper-requestedα∂defaultα∂forα∂whichα∂noα∂special
↓ β↔β
<¬βclaimα⊂isα⊂made,α⊂exceptα⊂toα⊂sayα⊂thatα⊂theα⊂overlayα∂isα∂placedα∂"justα∂below"
↓ β↔β
Z¬βwhereα
youα
wereα
writingα
plainα
textα
previouslyα
--α
Becauseα
textα
mustα
be
↓ β↔β
x¬βpresentedα⊂inα⊂ascendingα⊂Y-sequenceα⊂toα∂theα∂XGP,α∂youα∂mustα∂enableα∂the
↓ β↔β⊗¬βsimulatorα⊃(seeα⊃noteα⊃2)α⊂wheneverα⊂youα⊂placeα⊂ordinaryα⊂textα⊂belowα⊂any
↓ β↔β4¬βoverlayα∪onα∪theα∪sameα∪page.α&--α∪ADDENDAα∪1975.JUL-AUGα∩--α∩Atα∩the
↓ β↔βR¬βinsistenceα∂ofα∂Ralphα∂Gorin,α∂theα∂defaultα∂wayα∂theseα∞commandsα∞workα∞isα∞a
↓ β↔βp¬βcomplicatedα∞illogicalα∞messα∞thatα∞happenedα∞toα∞beα∞implementedα∞forα∞aα∞few
↓ β↔β
∞¬βdaysα∞inα∞July.α≤Ifα∞youα∞haveα∞theα∞'200000α∞bitα∞on,α∞asα∞Iα∞recommendα∞forα
all
↓ β↔β
*¬βnewα⊃files,α⊃theα⊃followingα⊂moreα⊂reasonableα⊂thingα⊂happens:¬
α 1¬∂O¬βα⊂always
↓ β↔β
J¬βaffectsα∞yourα∞pageα
printer,α
andα
register¬∂α
;¬βα
ifα
theα
simulatorα
isα
on,α
andα
is
↓ β↔β
h¬βsupposedα
toα
beα
usedα
forα
displaysα
thatα
occurα
inα
theα
middleα
ofα
text,α
not
↓ β↔β
∧¬βpageα
headers/footings.¬
α_1¬∂W¬βα
neverαaffectsαyourαpageαprinterαorαregister
↓ β↔β
$¬∂;¬βα∂andα∂isα∂usefulα∂forα∞headings/footings,α∞especiallyα∞fromα∞theα∞EVERYPAGE
↓ β↔β
@¬βmacroα
feature.α_Theα
followingα
otherαdifferencesαexist:α⊗the¬
α1¬∂W¬βαcommand
↓ β↔β
`¬βwillα
forceα
theα
overlayα
toα
beα
onα
theα
sameα
page,α
evenα
ifα
itαisαoutsideαthe
↓ β↔β
|¬βnormalα∂pageα∂margins,α∂whereasα∂the¬
α∂1¬∂O¬βα∂commandα∞willα∞warnα∞youα∞ifα∞itα∞is
↓ β↔β∞≤¬βbelowα⊃theα⊃bottomα⊃ofα⊃theα⊃page,α⊃orα⊂ifα⊂VERPAGα⊂isα⊂onα⊂(seeα⊂theα⊂special
↓ β↔β∞:¬βfeaturesα
section)α
itα
willα
beα
placedα
onα
theα
nextα
pageα
automatically.
↓ ↓Hβ∞V¬
1¬∂H¬¬<NAME>¬∂;¬β↓ β↔(UαJα
CRα
o)α
--α
outputα
overlayα
toα
XGPα
asα
ifα
itα
wereα
aα
largeα
character,α
right
↓ β↔β∞v¬β"here"α∂inα∂context,α∂includingα∞anyα∞baselineα∞offsetα∞thatα∞mayα∞beα∞inα∞effect.
↓ β↔β∂∀¬βNoαside-effectsαoccurαexceptαmovingαtheαcolumnαcounterαtoαtheαrightαby
↓ β↔β∂2¬βtheα⊂amountα⊂ofα⊂parameterα∂7α∂(RMOVE)α∂ofα∂theα∂overlayα∂--α∂noteα∂thatα∂left
↓ 	∞¬α 14↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 15↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ β↔β↓H¬βkernαcanαbeαobtainedαbyαoffsettingα
theα
entireα
overlayα
soα
thatα
parameter
↓ β↔β↓f¬β1α
isα
nonzero,α
andα
right-kernαcanαbeαobtainedαbyαmodifyingαparameterα7
↓ β↔βα∧¬βtoα
beα
differentα
fromα
parameterα
2.
↓ ↓Hβα ¬
1¬∂∂¬¬<NEW_NAME>¬∂←¬¬<OLD_NAME>¬∂;
↓ ↓Hβα@¬β  ↓ β↔(UαJαCRαoαA)α--αrenameαoverlayαorαmacroα
--α
ifα
resultantα
nameα
isα
theα
null
↓ β↔βα↑¬βstringα
thenα
deleteα
ratherα
thanα
renameα
--α
Itα
isα
probablyα
aα
goodα
ideaα
to
↓ β↔βα|¬βdeleteα
anyα
obsoleteα
overlaysα
orα
macrosα
toαsaveαcoreα--αTheαonlyαother
↓ β↔ββ~¬βmajorα∩reasonα∩forα⊃usingα⊃thisα⊃commandα⊃nowα⊃isα⊃toα⊃temporarilyα⊃rename
↓ β↔ββ8¬βsomethingα∪soα∪thatα∪itα∩canα∩beα∩temporarilyα∩redefined,α∩thenα∩deleteα∩the
↓ β↔ββV¬βtemporaryα⊂definitionα⊂andα⊂renameα⊂theα⊂permanentα∂definitionα∂backα∂again
↓ β↔ββt¬βwhenα
done.α
--α
Theα
renameα
algorithmα
currentlyαisαasαfollows:α⊗Doαallαthe
↓ β↔β∧∩¬βfollowing,α
firstα
3≠?⊂⊂4(3?[/∪3πg~`λ4(3S#.pλ4(↓≠∃$ifα
thatα
fallsα
thru,α
forα
macros:α(1)αstart
↓ β↔β∧0¬βatαtheαtopαofαlistαofαdefinitions,αi.e.α⊗mostαrecently-definedα
item;α
(2)α
ifα
its
↓ β↔β∧N¬βnameα
equals¬¬α
<OLD>¬βα
thenα
clobberα
itsα
retrievalα
nameα
to¬¬α
<NEW>¬βα
andα
return
↓ β↔β∧l¬βfromα∞theα∞Doα∞loop,α∞elseα∞ifα
itsα
nameα
equals¬¬α
<NEW>¬βα
thenα
deleteα
itα
andα
fall
↓ β↔β¬
¬βthroughα∞toα∞3,α
elseα
doα
nothingα
andα
fallα
throughα
toα
3;α
(3)α
moveα
downα
to
↓ β↔β¬(¬βnextα∩olderα∩itemα⊃inα⊃theα⊃list;α⊃(4)α⊃goα⊃toα⊃2.α⊃--α⊃Thusα⊃itα⊃isα⊃possibleα⊃that
↓ β↔β¬F¬βrenamingα⊂theα⊂latestα⊂versionα⊂ofα⊂aα∂twice-definedα∂overlayα∂orα∂macroα∂will
↓ β↔β¬d¬βunmaskα∞theα∞olderα∞version.α≤Don'tα
relyα
onα
this,α
itα
dependsα
tooα
muchα
on
↓ β↔βεα¬βtheα
structureα
ofα
theα
tablesα
ofα
definitions,α
andα
isα
likelyα
toα
changeα
inα
the
↓ β↔βε ¬βnearα
futureα
withoutα
warning!
↓ ¬
βεW¬Examples of use of overlays
↓ ↓Hβεz¬∂$oNUM[1-b+SQRT(b$↑=10;2$⊗-4ac)]$;  set up the numerator
↓ ↓Hβπ_¬∂$oDEN[12a]$←=0;$→0$; set up the denominator and a useful register
↓ ↓Hβπ6¬∂$; NOTE -- The algorithm as presented here only works when NUM is wider than DEN
↓ ↓HβπT¬∂$1NUM;$→X$2NUM;$+X$→A$; set up x offset, compute size of numerator
↓ ↓Hβπr¬∂$oBAR[V00A0=2;]$; set up a fraction bar the correct length for numerator
↓ ↓Hβλ⊂¬∂$4NUM;$+=3;$¬0$→Y$3DEN;$+=5;$→y$; compute y offsets
↓ ↓Hβλ.¬∂$1DEN;$→1$2DEN;$¬1$+A$/=2;$→x$; compute x offset
↓ ↓HβλL¬∂$&FRAC←NUM,XY&DEN,xy&BAR,00;$; make fraction a composite overlay
↓ 	jβλQ¬-b+SQRT(b↓#
2↓#-4ac)
↓ ↓Hβλj¬∂$2FRAC;$¬R$→X$4FRAC;$¬;$→Y$OFRAC,XY$; output overlay rightified
∧λ}	jα↓|↓ 
Wβ	α¬2a
↓ α_β	I¬βHere'sα
aα
usefulα
hackα
usingα
overlays.α_Supposeαyouαwantαtoαfindαoutαhowαwideαaαstringαofαtextαis
↓ ↓Hβ	g¬βinα⊂aα⊂particularα⊂fontα⊂(orα⊂combinationα⊂ofα⊂fonts).α≡Youα∂canα∂createα∂anα∂overlay,α∂measureα∂itsα∂parameters
↓ ↓Hβ
¬¬β(1,2,3,4),αthenαdeleteαitαrightαawayαtoαreclaimαtheαspaceαusedαbyαtheαoverlayα
thatα
youα
won'tα
actuallyα
be
↓ ↓Hβ
#¬βusingα
asα
anα
overlay.
↓ β⊃β
Z¬MACROS (WITHOUT ARGUMENTS) AND REQUIRE SOURCE FILES
↓ α_β
}¬βAllα
inputα
toαtheαPOXαtextαprocessorαpassesαthroughαaαpre-processorαwhichαinsertsαmacroαbodies,
↓ ↓Hβ≠¬βargumentsα∞toα∞macros,α∞andα∞requestedα∞sourceα∞filesα∞inα∞theα∞middleα∞ofα∞theα∞inputα∞streamα∞accordingα
toα
the
↓ ↓Hβ9¬βfollowingα
commands:
↓ ↓HβU¬
1¬∂∞¬¬<NAME><OPEN><BODY><CLOSE>
↓ ↓Hβu¬β  ↓ β↔(Uα
Jα
CRα
oα
A)α
--α
defineα
aα
macroα
forα
useα
laterα
--α
noteα
thatα
inα
namesα
of
↓ β↔β
∪¬βmacros,α
justαlikeαalmostαeverywhereαelse,αlowerαcaseαisαnotαtheαsameαas
↓ β↔β
1¬βupperα⊂case,α⊂thus¬∂α∂fooα∂Fooα∂fOOα∂FOOα∂fOoα∂foOα∂FoO¬βα∂and¬∂α∂FOo¬βα∂areα∂eight
↓ β↔β
J¬βdifferentα∪namesα∪--α∪also,α∩the¬¬α∩<BODY>¬α∩isα∩notα∩evaluatedα∩duringα∩this
↓ β↔β
h¬definitionα∩phase¬β,α∩i.e.,α∩theα∩escapeα∩characterα∩andα∩anythingα∩elseα⊃may
↓ β↔β
¬βoccurα∞inα∞theα∞body,α
nothingα
specialα
happensα
asα
theα
escapeα
characterα
is
↓ β↔β
)¬βcopiedα∩intoα∩theα∩macro,α⊃escapeα⊃onlyα⊃occursα⊃laterα⊃whenα⊃theα⊃macroα⊃is
↓ β↔β
G¬βactuallyα⊂called,α⊂resultingα⊂inα⊂theα∂escapeα∂characterα∂andα∂everythingα∂else
↓ β↔β
e¬βgettingα
stuffedα
intoα
theα
inputα
stream.
↓ ↓Hβ∞↓¬
1¬∂!¬¬<NAME>¬∂;¬β↓ β↔(Uα
Jα
CRα
oα
A)α
--α
callα
aα
macro,α
i.e.,α
insertα
bodyα
fromα
definitionα
rightαhere
↓ β↔β∞!¬βinα
inputα
stream,α
henceαoccurrencesαofαtheαescapeαcharacterαinαtheαbody
↓ β↔β∞?¬βwillα
causeα
thingsα
toα
occurα
nowα
(seeα
noteα
1α
also).
↓ ↓Hβ∞[¬
1¬∂?¬¬<NAME>¬∂;¬β↓ β↔(Uα∪Jα∩CRα∩oα∩A)α∩--α∩"conditionalα∩macro"α∩--α∩sameα∩syntaxα∩asα∩aboveα∩but
↓ β↔β∞{¬βgenerateα
nothingα
unlessα
accumulatorα
isα
positiveα
(seeα
noteα
3).
↓ ↓Hβ∂↔¬
1¬∂I¬¬<NAME>¬∂;¬β↓ β↔(Uα∞Jα∞CRα∞oα∞A)α∞--α∞"iterateα∞macro",α∞sameα
as¬
α
1¬∂?¬¬<NAME>¬∂;¬βα
exceptα
thatα
after
↓ β↔β∂7¬βcompletingα∃theα∃firstα∃read-backα∃ofα∃theα∃body,α∃ifα∀theα∀accumulatorα∀is
↓ 	∞¬α 15↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 16↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ β↔β↓H¬βpositiveα∂itα∂goesα∂backα∂toα∂theα∂beginningα∂andα∂readsα∞itα∞again,α∞etc.α∞--α∞the
↓ β↔β↓f¬βeffectα
isα
theα
sameα
asα
inα
SAILα
executingα
"¬∂WHILE¬¬α
ac¬∂>0α
DO¬¬α
<callα
macro>¬β".
↓ ↓Hβα ¬
1¬∂@¬¬<FILNAM>¬∂;¬β↓ β↔(Uα
Jα
CRα
oα
A)α
--α
insertα
sourceα
fileα
here,α
thenα
returnα
toα
currentα
file.
↓ ↓Hβα>¬
1¬∂ᬬ<FILNAM>¬∂;¬β↓ β↔(U)α∞--α
insertα
sourceα
fileα
hereα
butα
don'tα
comeα
backα
hereα
--α
theα
restα
of
↓ β↔βα↑¬βthisα
file,α
andα
anyα
filesα
thatα
calledα
it,α
areα
notα
processed.
↓ ↓Hβαz¬
1¬∂∀¬¬<FILNAM>¬∂;¬¬<LIST OF DESIRED MACRO NAMES>¬∂;
↓ ↓Hββ~¬β  ↓ β↔(Uα
Jα
CRα
oα
A)α
--α
scanα
sourceα
fileα
thatα
containsα
macroα
definitionsα
(seeα
next
↓ β↔ββ8¬βsectionαonαmacrosαwithαarguments,αasαwellαasαthisαsection,αforαdetailsαon
↓ β↔ββV¬βtheα∞macroα∞definitionsα∞themselves).α≤Atα∞present,α∞theα
fileα
mustα
containα
a
↓ β↔ββt¬βTV/Eα
directoryα
toα
avoidα
aα
bugα
inα
POX.α_Nothingα
inα
theα
fileα
isα
processed
↓ β↔β∧∩¬βunlessα
itα
simultaneouslyα
satisfiesα
theseα
conditions:α~(1)α
Itα
beginsα
withα
a
↓ β↔β∧0¬βbrickα
characterα
inα
columnα
1α
ofαtheαfile,αi.e.,αimmediatelyαafterαaαlinefeed;
↓ β↔β∧N¬β(2)α
Itα
hasα
eitherα
a¬∂α
∞¬βα
or¬∂α
8¬βα
inα
columnα
2,α
i.e.,α
itα
isα
aα
commandα
toα
defineα
a
↓ β↔β∧j¬βmacro;α⊂(3)α⊂Theα⊂nameα⊂ofα⊂theα⊂macroα⊂(inα⊂the¬
α∂1¬∂∞¬βα∂or¬
α∂1¬∂8¬βα∂commandα∂being
↓ β↔β¬
¬βtested)α∂isα∂aα∂memberα∂of¬¬α∂<LISTα∞OFα∞DESIREDα∞MACROα∞NAMES>¬βα∞thatα∞hasα∞notα∞yet
↓ β↔β¬&¬βbeenα
used.α~Inα
particular,¬
α
1¬∂|¬βα
commandsα
areα
notα
processed,α
soα
thatα
the
↓ β↔β¬F¬βentireα⊗libraryα⊗mustα⊗useα⊗theα⊗sameα⊗brickα⊗character,α⊗andα∃thisα∃brick
↓ β↔β¬b¬βcharacterαmustαbeαsetαupαbeforeαissuingαthe¬
α1¬∂∀¬βαcommand.α∀Also,¬
α
1¬∂⊂¬βα
etc.
↓ β↔βεα¬βcommandsαareαnotαprocessed,αsoαthatαallαbitsαneededαforαcorrectαloading
↓ β↔βε ¬βofα∀macros,α∀namelyα∀VERREM='40,α∀VERRHT='400α∪andα∪VERESC='100000,
↓ β↔βε<¬βmustα∩beα∩inα∩theα∩properα∩stateα∩beforeα∩issuingα∩the¬
α∩1¬∂∀¬βα⊃command.α"For
↓ β↔βε\¬βdocumentationα
purposes,αanyαlibraryαofαPOXαmacrosαshouldαbeginαwithαa
↓ β↔βεx¬βcommentα
(orα
a¬
α
1¬∂⊂¬
α
1¬∂⊃¬βα
commandα
pair)α
thatα
remindsα
usersα
ofα
theα
correct
↓ β↔βπ_¬βstatesα
ofα
theseα
special-featureα
flags.α∀--α
Example:
↓ β7βπ4¬
1¬∂∀REMLIB.POX[1,REM];DATIME,PAGENUMS,SUB,SUP,PAGENUMS;
↓ ↓HβπT¬β  ↓ β↔Thisα⊗loadsα⊗theα⊗second-occurringα⊗versionα⊗ofα∃PAGENUMSα∃onα∃topα∃of
↓ β↔βπr¬β(replacing)α⊃theα⊃first,α⊂andα⊂loadsα⊂onlyα⊂theα⊂firstα⊂versionα⊂ofα⊂eachα⊂ofα⊂the
↓ β↔βλ⊂¬βotherαmacros.α⊗Itαisαprobablyαpreferableαtoαuseα
"fully-catalogued"α
names
↓ β↔βλ.¬βratherα∪thanα∪haveα∩severalα∩differentα∩macrosα∩byα∩theα∩same,α∩thenα∩after
↓ β↔βλJ¬βloadingα⊃toα⊃renameα⊃eachα⊂macroα⊂(usingα⊂the¬
α⊂1¬∂∂¬βα⊂command)α⊂toα⊂aα⊂shorter
↓ β↔βλj¬βnameα
thatα
willα
beα
usedα
locally.
↓ ↓Hβ	ε¬
1¬∂⬬<FILNAM>¬∂;¬β↓ β↔(Uα
Jα
CRαoαA)α--αlookupαfileαbutαdon'tαreadαanyαofαit.α⊗Ifαtheαfileαdoesαnot
↓ β↔β	&¬βexistα⊃thenα⊃typeα⊃theα⊃nameα⊃ofα⊂theα⊂fileα⊂onα⊂theα⊂TTYα⊂andα⊂incrementα⊂the
↓ β↔β	D¬βcontentsα
ofα
theα
ac.α_Doα
notα
inα
anyαcaseαgenerateαanαerrorαorαotherwise
↓ β↔β	b¬βaffectαtheαstateαofαtheαtextαcompilationαinαprogress.α∃Usefulα
forα
checking
↓ β↔β
¬βallα∞theα∞requiredα∞sourceα∞filesα∞atα∞theα∞beginningα∞ofα∞aα∞longα∞compilationα∞to
↓ β↔β
≡¬βsaveα
timeα
ifα
severalα
filesα
toα
beα
calledα
laterα
areα
missingα
andα
needα
toα
be
↓ β↔β
<¬βrestored.α≡Aα∂usefulα∂techniqueα∂isα∂toα∂setα∂theα∂accumulatorα∞toα∞zero,α∞then
↓ β↔β
X¬βperformαone¬
α1¬∂β¬βαcommandαforαeachαsourceαfileαthatαwillαlaterαbeα
needed,
↓ β↔β
x¬βthenαtestαtheαaccumulatorαandαifαitαisα
nowα
positiveα
generateα
aα
deliberate
↓ β↔β⊗¬βerrorα∞toα∞giveα∞theα∞userα∞timeα∞toα∞putα∞onα∞theα∞diskα∞allα∞theα∞filesα∞thatα
were
↓ β↔β4¬βfoundα
toα
beα
missing,α
beforeα
proceedingα
withα
theα
documentα
compilation.
↓ ↓HβP¬
1¬∂m¬¬<OPEN><TEXT><CLOSE>
↓ ↓Hβp¬β  ↓ β↔(Uα↔Jα↔CRα↔oα↔A)α⊗--α⊗sendα⊗theα⊗textα⊗toα⊗theα⊗terminal,α⊗presumablyα⊗to
↓ β↔β
∞¬βcommunicateα≠withα≠theα≠user,α~suchα~asα~toα~indicateα~progressα~with
↓ β↔β
,¬βcompilationα∩orα⊃toα⊃listα⊃whichα⊃physicalα⊃pagesα⊃ofα⊃outputα⊃correspondα⊃to
↓ β↔β
J¬βwhichα
chaptersα
ofα
theα
document.
↓ α_β
h¬βInα
theα
above,¬¬α
<FILNAM>¬βα
isα
aα
standardα
fileα
name¬∂α
FILNAM.EXT[P,P]¬βα
whichα
mustα
beα
eitherα
aα
non-POX
↓ ↓Hβ
ε¬βfileα∞withα∞noα∞occurrencesα∞ofα∞theα∞brickα∞characterα∞orα∞aα∞poxα∞fileα∞thatα∞doesα∞notα∞beginα∞withα∞aα∞bareα∞brick
↓ ↓Hβ
"¬βcharacterα∂(i.e.,α∂itα∂shouldα∂beginα∂withα∂somethingα∂like¬
α∂1¬∂|¬
1¬β),¬¬α∂<OPEN>¬βα∂and¬¬α∂<CLOSE>¬βα∂areα∞aα∞matchingα∞pairα∞of
↓ ↓Hβ
B¬βparenthesesα⊂suchα⊂as¬∂α⊂()α⊂[]α⊂{}α⊂⊂⊃α∂<>¬β,α∂inα∂whichα∂caseα∂occurrencesα∂ofα∂theseα∂charactersα∂inα∂theα∂body
↓ ↓Hβ
`¬βmustα∞beα∞correctlyα∞matched,α∞orα∞elseα∞twoα∞identicalα∞quotingα∞charactersα∞suchα∞as¬∂α∞""α∞//α∞↓↓α
⊗⊗α
||α
∂∂¬β,α
in
↓ ↓Hβ
}¬βwhichαcaseαtheαquotingαcharacterαisαnotαallowedα
toα
occurα
inα
theα
bodyα
atα
allα
(theα
completeα
currentα
listα
of
↓ ↓Hβ∞≤¬βlegalα
nestingα
andα
quotingα
charactersα
mayα
beα
foundα
byα
examiningα
theα
sourceα
forα
POX).
↓ α_β∞8¬β(Inα⊃the¬
α⊃1¬∂@¬βα⊃command,α⊂afterα⊂theα⊂fileα⊂nameα⊂andα⊂beforeα⊂theα⊂";",α⊂itα⊂hasα⊂beenα⊂proposedα⊂toα⊂allow
↓ ↓Hβ∞X¬βuncouplingα
flags,α
designated¬¬α
<UC>¬βα
below.α_Theirα
purposeα
willα
beα
toα
saveα
variousα
internalαstatesαbefore
↓ ↓Hβ∞v¬βbeginningα∞toα∞inputα∞anα∞insertedα
sourceα
file,α
thenα
toα
restoreα
thoseα
statesα
beforeα
returningα
soα
thatα
the
↓ ↓Hβ∂∀¬βinsertedα
fileα
won'tα
passα
undesiredα
side-effectsα
backα
toα
theα
mainα
program.α_Inα
theαabsenceαofαany¬¬α<UC>
↓ ↓Hβ∂2¬βflags,αanyαmacro-definitionsαorαfontαcompilationsαetc.αdoneαinαtheαinsertedαsourceαfileαwillαstayαinα
effect
↓ 	∞¬α 16↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 17↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬βafterα
returningα
toα
theα
currentα
file,α
aα
sometimesα
undesirableα
effect.)
↓ ∧>β↓¬Examples of macros without arguments
↓ ↓Hβα"¬∂$∞SUPERSCRIPT[$F1$∩$F2]$∞NORMAL[$F1$⊗]$; $F1 sets font so $∩ uses correct default
↓ ↓Hβα@¬∂$!NORMAL;Y = X$!SUPERSCRIPT;i+1$!NORMAL;-1
↓ ↓HβαO¬Y = X¬α↓#⊂i+1¬-1
↓ ↓Hββ≠¬∂$∞SOJGxFOO[$F2(FOO)$←N$-=1;$→N$?SOJGxFOO;]$; set up a count-down-to-zero loop
↓ ↓Hββ9¬∂$; note that the above macro will recursively call itself N levels deep
↓ ↓HββW¬∂$←=15;$→N$!SOJGxFOO;$; call the loop with N=15 to generate 15 copies of (FOO)
↓ ↓Hβ∧∪¬α(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)
↓ β~β∧h¬MACROS WITH ARGUMENTS -- EVALUATED LIKE LISP EXPR'S
↓ α_⬬βManyα
ofα
theα
commandsα
describedα
aboveα
areα
tooα
elementaryα
toα
beα
lessα
thanα
tediousα
inα
practice,
↓ ↓Hβ¬)¬βevenα⊂withα⊂macrosα∂usedα∂toα∂abbreviateα∂longα∂sequencesα∂ofα∂commands.α≡Complicatedα∂thingsα∂areα∂almost
↓ ↓Hβ¬G¬βunbearable,α∞forα∞exampleα∞toα∞createα∞aα∞superscriptα∞aboveα∞aα∞subscriptα
asα
inα
"x-sub-i-to-the-nth-power"
↓ ↓Hβ¬e¬βwouldα
requireα
quiteα
aα
messα
ofα
almostα
unreadableα
code,α
suchα
as:
↓ αHβε↓¬
1¬∂F1¬
1¬∂⊗x¬
1¬∂←.¬
1¬∂→0¬
1¬∂↑=15;¬
1¬∂F2n¬
1¬∂←.¬
1¬∂→1¬
1¬∂←0¬
1¬∂→.¬
1¬∂↓=12;i¬
1¬∂←.¬
1¬∂~1¬
1¬∂→.¬
1¬∂⊗¬
1¶F1
↓ ↓Hβε!¬βwhereαyouαmayαhaveαtroubleαlocatingαtheαtermsα"¬∂x¬β",α"¬∂n¬β"αandα"¬∂i¬β"αamidstαallαtheα
overhead.α∀Usingα
macros
↓ ↓Hβε?¬βwithoutα⊃argumentsα⊃mayα⊃resultα⊃inα⊃someα⊃increaseα⊃inα⊃readability.α!Thisα⊂canα⊂beα⊂doneα⊂inα⊂atα⊂leastα⊂two
↓ ↓Hβε]¬βreasonableα
ways,α
resultingα
in:
↓ αHβεy¬
1¬∂!txt;x¬
1¬∂!savecol;¬
1¬∂!sub;i¬
1¬∂!swapcol;¬
1¬∂!sup;n¬
1¶!maxcol;
↓ ↓Hβπ↔¬βor¬
↓ αH1¬∂∞main[x]¬
1¬∂∞sub[i]¬
1¬∂∞sup[n]¬
1¶!sbp;
↓ ↓Hβπ7¬βMacrosα∞withα∞argumentsα∞makeα∞thingsα∞easierα∞andα∞muchα∞moreα∞readable.α≤Afterα∞onceα
definingα
theα
macro
↓ ↓HβπU¬∂sbp(main,sub,sup)¬βα~(seeα~theα~examplesα→laterα→inα→thisα→sectionα→forα→details)α→weα→canα→generate
↓ ↓Hβπs¬βx-sub-i-to-the-nth-powerα
byα
theα
simple:
↓ αHβλ∂¬
1¶!sbp(x,i,n);
↓ ↓Hβλ/¬βTheα
pseudo-languageα
weα
thusα
buildα
upα
outα
ofα
macros-with-argumentsα
partiallyα
obviatesα
theα
necessity
↓ ↓HβλM¬βofα
fixingα
theα
"bad"α
syntaxα
thatα
POXα
has.
↓ ∧{β		¬βDEFINE MACRO -- VERREM SYNTAX
↓ β∞β	'¬β(THIS AND FOLLOWING SECTIONS WERE REWRITTEN 1975.NOV.27-DEC.05)
↓ ↓Hβ	C¬
1¬∂8¬¬<NAME>¬∂(¬¬<ARGNAMES>¬∂)¬¬<OPEN><BODY><CLOSE>
↓ ↓Hβ	c¬β  ↓ α?(Uα⊂Jα⊂CRα⊂oα⊂A)α∂--α∂defineα∂aα∂macroα∂withα∂argumentsα∂(upα∂to¬∂α∂'30¬βα∂argumentsα∂currently
↓ α?β
↓¬βallowed).α≠Theα
VERREMα
special-featureα
bitα
mustα
beα
onα
atα
theα
timeα
thisα
commandα
is
↓ α?β
∨¬βscanned.α∀Seeα
detailsα
ofα
syntaxα
below.
↓ α?β
=¬¬<ARGNAMES>¬βα
--α
Upα
to¬∂α
'30¬βαalphanumericαstringsαseparatedαbyαcommas.α⊗(Noteαthatαthe
↓ α?β
[¬βcharactersα
surrounding¬¬α
<ARGNAMES>¬βα
mustα
beα
parentheses.)
↓ α?β
y¬¬<BODY>¬βα
--α
Anα
arbitraryα
stringα
ofα
textα
toα
beα
copiedα
verbatimα
intoα
theα
"body"α
ofα
the
↓ α?β↔¬βmacro.α⊗Thisαtextαwillαbeαsplicedαintoαtheαinputαstreamα
laterα
whenα
theα
macroα
isα
called
↓ α?β3¬β(seeαthe¬
α
1¬∂!¬βα
command),α
justα
likeα
macrosα
withoutα
arguments.α∀Theα
followingα
exceptions
↓ α?βS¬βtoα
theα
"verbatim"α
copyingα
exist:
↓ α?βq¬¬<OPEN>¬βα∞and¬¬α∞<CLOSE>¬βα∞mustα∞beα∞properly-nestedα
ifα
theyα
appearα
atα
allα
insideα
theα
body.
↓ α?β
∂¬βPOXα∞countsα∞howα∞manyα∞levelsα∞deepα
youα
are,α
andα
onlyα
terminatesα
parsingα
whenα
the
↓ α?β
-¬βdepthα
reachesα
zero,α
i.e.,α
whenα
the¬¬α
<CLOSE>¬βα
appearsα
thatα
matchesαtheαoriginal¬¬α<OPEN>¬β.
↓ α?β
K¬βOfα
course,α
ifα
youαuseαaαquotingαpairαtoαdelimitαtheαbody,αtheαquotingαcharactersαmay
↓ α?β
i¬βnotα
appearα
atα
allα
inα
theα
body.
↓ α?β
¬¬
1¬βα⊂(i.e.,α⊂whateverα⊂yourα∂brickα∂characterα∂isα∂atα∂theα∂timeα∂youα∂defineα∂theα∂macro)α∂gets
↓ α?β
%¬βconvertedα
intoα
a¬¬α
<BRICK>¬βα
tokenα
ifα
theα
VERESCα
special-featureα
bitα
isα
on,α
otherwiseα
it
↓ α?β
C¬βgetsαcopiedαverbatimαtoo.α⊗Whenαthe¬¬α<BRICK>¬βαtokenαisαseenαlaterαwhenα
expandingα
the
↓ α?β
←¬βmacro,αitαgetsαconvertedαtoαthe¬
α1¬βα
character,α
whichα
willα
beα
aα
differentα
characterα
from
↓ α?β
}¬βtheα∀originalα∀ifα∀youα∀haveα∀used¬
α∀1¬∂|¬¬<CH>¬βα∀toα∀redefineα∀theα∀brickα∀characterα∀inα∀the
↓ α?β∞≥¬βmeantime.α≤(Withoutα∞theα∞VERESCα∞feature,α∞itα∞wouldα∞beα∞theα∞sameα∞ASCIIα∞characterα∞as
↓ α?β∞;¬βbefore,α
evenα
ifα
itα
wereα
noα
longerα
theα
brickα
character.)
↓ α?β∞Y¬∂⊗$⊗¬βα∂getsα∂convertedα∂intoα∞the¬¬α∞<BRICK>¬βα∞tokenα∞regardlessα∞ofα∞theα∞stateα∞ofα∞theα∞VERESC
↓ α?β∞w¬βflag.
↓ α?β∂∃¬∂⊗⊗¬βα
getsα
convertedα
intoα
aα
↓&single↓)αβ¬∂α
⊗¬βα
character.
↓ α?β∂3¬∂⊗¬¬<ARGNAME>¬∂⊗¬βα∩(oneα∩ofα∩theα∩argument-namesα∩youα∩specifiedα∩inα∩the¬¬α∩<ARGNAMES>¬β)α∩gets
↓ 	∞¬α 17↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 18↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ α?β↓H¬βconvertedα∞intoα∞theα∞appropriate¬¬α∞<ARGn>¬βα∞token.α~Laterα
whenα
theα
macroα
isα
called,α
this
↓ α?β↓Y¬βtokenα
isα
replacedα
byα
theα
n↓#
th↓#α
actual-argumentα
string.
↓ α?β↓|¬∂⊗@¬εq¬∂⊗¬βα∩(notα∩supported,α∩andα⊃likelyα⊃toα⊃beα⊃purgedα⊃orα⊃differently-implementedα⊃soon)
↓ α?βα"¬βperformsαtheαregister-argumentαlookupα
andα
usesα
theα
valueα
thusα
obtainedα
(mustα
beα
in
↓ α?βα@¬βtheα
range¬∂α
0¬βα
to¬∂α
'30¬β)α
toα
generateα
theα
corresponding¬¬α
<ARGn>¬βα
token.
↓ α?βα↑¬∂⊗¬β...¬∂⊗¬βα∪--α∪anythingα∪elseα∩afterα∩a¬∂α∩⊗¬βα∩characterα∩isα∩illegal.α$Anα∩errorα∩willα∩usuallyα∩be
↓ α?βα|¬βgeneratedα
beforeα
theα
second¬∂α
⊗¬βα
isα
seenα
(ifα
thereα
isα
one).
↓ ∧jββ8¬βCALLING MACROS -- LIKE LISP EXPR'S
↓ ↓HββT¬
1¬∂!¬¬<NAME><ARGBATCH><ARGBATCH>...<ARGBATCH>¬∂;
↓ ↓Hββt¬βwhereα∂each¬¬α∂<ARGBATCH>¬βα∞isα∞ofα∞theα∞form¬¬α∞<OPEN><ACTUALα∞ARGS><CLOSE>¬βα∞andα∞each¬¬α∞<ACTUALα∞ARGS>¬βα∞consistsα∞of
↓ ↓Hβ∧∩¬βargumentsα
separatedα
byα
commas,α
asα
describedα
below.
↓ ↓Hβ∧0¬β  ↓ α?(Uα⊃Jα⊂CRα⊂oα⊂A)α⊂--α⊂callα⊂aα⊂macroα⊂withα⊂arguments.α Each¬¬α⊂<ARGBATCH>¬βα⊂unitα⊂mayα⊂useα⊂a
↓ α?β∧N¬βdifferent¬¬α
<OPEN>α
<CLOSE>¬βα
pairα
(whenα
the¬¬α
<OPEN>¬βα
isα
seen,αPOXαlooksαitαupαinαaαtableαto
↓ α?β∧l¬βdetermineαwhich¬¬α
<CLOSE>¬βα
toα
lookα
for)α
selectedα
fromα
theα
legalα
nestingα
orα
quotingα
pairs.
↓ α?β¬
¬βAsα
manyα
argumentsα
asα
desired,α
separatedα
byα
commas,α
mayα
appearα
inα
aα
single¬¬α
<ACTUAL
↓ α?β¬(¬¬ARGS>¬βαitem,αandαasαmany¬¬α<ARGBATCH>¬βαunitsαmayα
appearα
altogetherα
(asα
indicatedα
byα
the
↓ α?β¬F¬β"..."α
inα
theα
aboveα
syntaxα
specification),α
providedα
thatα
theα
totalαnumberαofαarguments
↓ α?β¬d¬βdoesα
notα
exceed¬∂α
'30¬β.α_Theα
mostα
commonα
wayα
ofα
doingα
it,α
andα
theαeasiest,αisαtoαuse
↓ α?βεα¬βordinaryα
parentheses,α
withα
allα
argumentsα
inα
aα
single¬¬α
<ARGBATCH>¬βα
unit,α
forα
example:
↓ βUβε≡¬
1¶!FOO(First argument,Second argument,Third arg);
↓ ↓Hβε>¬β  ↓ α?However,αifαanyαargumentαcontainsαorαgeneratesαaαcomma,αitαisαnecessaryαtoαturnαon
↓ α?βε\¬βtheαVE1LESαspecial-featureαbitα(toαpreventαcommaαfromαdelimitingαarguments)αandαto
↓ α?βεz¬βencloseα
eachα
argumentα
inα
aα
separateα
setα
ofα
nestingα
characters,α
suchα
as:
↓ α}βπ⊗¬
1¶!LESHACK(First argument with ",")(Second argument)(Third);
↓ ↓Hβπ6¬β  ↓ α?Also,α⊃ifα⊃parenthesisα⊃occurα⊂insideα⊂arguments,α⊂itα⊂isα⊂usuallyα⊂necessaryα⊂toα⊂useα⊂some
↓ α?βπT¬βotherα
nestingα
orα
quotingα
pair,α
forα
example:
↓ β∃βπp¬
1¶!MESS<This contains (, [, ", and { inside an argument>;
↓ ↓Hβλ⊂¬β  ↓ α?Aα$detailedα$descriptionα$ofα$theα$algorithmα$thatα#isα#usedα#toα#scanα#the
↓ α?βλ.¬βmacro-with-argumentsα
syntax,α
buildα
upα
arguments,α
bindα
themα
toα
the¬¬α
<ARGn>¬βα
tableα
that
↓ α?βλL¬βisα
passedα
toα
theα
macro-bodyα
expander,αandαtheαalgorithmαtheαmacro-bodyαexpander
↓ α?βλj¬βusesα∂toα∂spliceα∂theα∂macroα∂bodyα∂andα∂theα∂argumentsα∞intoα∞theα∞inputα∞stream,α∞isα∞given
↓ α?β	λ¬βlater.α⊗Ifαyouαplanαtoαdoαanythingαcomplicatedαwithαmacros,αyouαwillα
needα
toα
readα
the
↓ α?β	&¬βalgorithm-descriptionα∩andα∩understandα⊃itα⊃inα⊃orderα⊃toα⊃predictα⊃whatα⊃happensα⊃when
↓ α?β	B¬βvariousα
specialα
charactersα
(¬¬<COMMA>α
<OPEN>α
<CLOSE>¬βα
and¬
α
1¬β)α
areα
generatedα
insideα
the
↓ α?β	b¬βscanning-of-argumentsα
process.α→Noteα
thatα
itα
isα
notα
legalα
toα
generateα
anα
ASCIIα
'177
↓ α?β
¬βorα∃'0α∃characterα∃whileα∃preparingα∃anα∃argument,α∃thusα∃manyα∃commandsα∃(suchα∃as
↓ α?β
≡¬βfont-select)α∞areα∞illegalα∞insideα∞arguments.α≤Byα∞quotingα∞theα∞charactersα∞thatα∞makeα∞up
↓ α?β
<¬βtheα∀commandα∀(seeα∪below),α∪however,α∪theα∪evaluationα∪ofα∪suchα∪commandsα∪mayα∪be
↓ α?β
Z¬βpostponedα
untilα
afterα
theα
expandedαmacroαhasαbeenαgeneratedαandαpatchedαintoαthe
↓ α?β
x¬βinputα∪stream,α∩atα∩aα∩timeα∩whenα∩suchα∩commandsα∩areα∩legal.α$Beα∩awareα∩thatα∩other
↓ α?β∀¬βcommandsα∞suchα∞as¬
α∞1¬∂A¬βα∞haveα∞aα∞slightlyα∞differentα∞effectα∞dependingα∞onα
whetherα
they
↓ α?β4¬βareαevaluatedαwhileαscanningαanαargumentαorαwhileαgeneratingαoutputαtextαlater,α
and
↓ α?βR¬βthatαcommandsαthatαfetchαcontentsα
ofα
registersα
etc.α∀willα
giveα
differentα
effectsα
ifα
that
↓ α?βp¬βdataα
changesα
afterα
argument-scanning-bindingα
time.
↓ ↓Hβ
¬
1¬∂?¬¬<NAME><OPEN><ACTUAL ARGS><CLOSE><OPEN><A.A.><CLOSE>...¬∂;
↓ ↓Hβ
,¬β  ↓ α?(Uα
Jα
CRα
oα
A)α
--α
conditionallyα
callα
aα
macroα
withα
arguments.α_Atα
theα
beginningα
ofα
the
↓ α?β
H¬βscan,αjustαafterαtheα"¬
1¬∂?¬β"αhasαbeenαseen,αaαflagαisαsetαaccordingαtoαwhetherαtheαacα
↓&is↓)αβ
↓ α?β
f¬βpositiveα
orα
not.α~Thenα
allα
argumentα
scanningα
etc.α
isα
performedα
justα
likeα
inα
theα
"¬
1¬∂!¬β"
↓ α?β
ε¬βcommandα⊃(indeed,α⊃theα⊃sameα⊃pieceα⊃ofα⊃codeα⊃isα⊃executedα⊃inα⊂POX).α Whenα⊂theα⊂final
↓ α?β
$¬βsemicolonα∞isα∞seen,α∞theα∞flagα∞isα∞testedα∞toα∞determineα
whetherα
theα
input-streamα
patch
↓ α?β
B¬βwillα∩beα∩doneα∩(ifα∩theα∩acα∩↓&was↓)αβα∩positive)α∩orα∩theα∩patchα∩notα∩doneα∩andα⊃theα⊃tableα⊃of
↓ α?β
`¬βargumentsα
flushedα
(ifα
theα
acα
↓&was↓)αβα
zeroα
orα
negative).
↓ ↓Hβ
|¬
1¬∂I¬¬<NAME><OPEN><ACTUAL ARGS><CLOSE><OPEN><A.A.><CLOSE>...¬∂;
↓ ↓Hβ∞~¬β  ↓ α?(Uα⊃Jα⊃CRα⊃oα⊃A)α⊃--α⊃iterativelyα⊃callα⊂aα⊂macroα⊂withα⊂arguments.α Similarα⊂to¬
α⊂1¬∂I¬¬<NAME>¬∂;
↓ α?β∞:¬βcommand.α≤Noteα∞thatα∞theα∞argumentsα∞areα∞onlyα∞evaluatedα∞andα∞boundα∞once,α
afterα
the
↓ α?β∞X¬βinitialαtestingαofαac>0αandαbeforeαtheαfirstαpatchingαofαtheαmacroαbodyαintoα
theα
input
↓ α?β∞v¬βstream.
↓ 	∞¬α 18↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 19↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ β>β↓H¬βDETAILED DESCRIPTION OF ALGORITHM FOR PROCESSING MACROS
↓ α_β↓d¬β(1)α
Ifα
theα
commandα
was¬
α
1¬∂?¬βα
thenα
theα
splice-enablingα
flagα
isα
setα
accordingα
toα
theα
contentsαofαthe
↓ ↓Hβαα¬βac,α
butα
ifα
theα
commandαis¬
α1¬∂!¬βαthenαtheαflagαisαsetαtoαTRUEαregardless.α⊗Textαisαscannedαuntilαaαdelimiter
↓ ↓Hβα"¬βisα∞seen,α∞andα∞the¬¬α∞<NAME>¬βα∞thusα
scannedα
isα
lookedα
upα
inα
theα
tableα
ofα
existingα
macros.α~Theα
bodyα
ofα
the
↓ ↓Hβα@¬βmacroαisαsavedαtoαbeαusedαlater,αandαanαemptyαlistαofαargumentsαisαsetαup.α⊗Theαdelimiterαatαtheαendαof
↓ ↓Hβα↑¬βthe¬¬α
<NAME>¬β,α
whichα
shouldα
beα
eitherα
aα
semicolonα
orα
anα
open-nestingα
orα
quotingα
character,α
isα
nowα
tested:
↓ α_βα|¬β(2)α∞Ifα∞thatα∞characterα∞wasα∞aα
semicolon,α
thenα
goα
toα
(5);α
Ifα
itα
wasα
aα
legalα
open-nestingα
orα
quoting
↓ ↓Hββ~¬βcharacter,αthenαlookα
upα
theα
correspondingα
close-nestingα
orα
quotingα
characterα
inα
theα
nestingα
tableα
inside
↓ ↓Hββ8¬βPOXαandαsaveαitαforαlaterαreference,αthenαsetαnestingαdepthαtoαzeroαandαenterαaαscannerαinα
whichα
input
↓ ↓HββV¬βcontinuesαtoαbeαreadαandαbrickαcommandsαcontinueαtoαbeαexecutedα
asα
theyα
occur,α
butα
outputα
isα
fedα
into
↓ ↓Hββt¬βanα⊃argument-bodyα⊃thatα⊃isα⊃beingα⊃constructed.α"Paragraphα⊃(3)α⊃describesα⊃thisα⊃scanningα⊃process,α⊃and
↓ ↓Hβ∧∩¬βparagraphα
(4)α
describesα
whatα
happensα
whenα
brickα
commandsα
areα
seenα
duringα
theα
scanning.
↓ α_β∧0¬β(3)α
Readα
aα
character.
↓ α_β∧N¬βIfα
itα
isα
theα
close-nestingα
orα
quotingα
characterα
thenα
weαdecrementαnestingαdepth,αthenαdepending
↓ ↓Hβ∧l¬βonα
itsα
resultantα
valueα
doα
theα
following:α_DEPTH<0,α
closeα
offα
thisα
argument-body,α
putα
itα
inα
theα
tableα
of
↓ ↓Hβ¬
¬βarguments,α∞readα
oneα
moreα
character,α
andα
goα
toα
(2)α
[THISα
ISα
THEα
ONLYα
EXITα
FROMα
THISα
(3)α
SCANNING
↓ ↓Hβ¬(¬βLOOP];α⊃DEPTH=0,α⊃doα⊃nothing,α⊃continueα⊃(3)α⊃scanning;α⊃DEPTH>0,α⊃emitα⊃theα⊃characterα⊃(close-nestingα⊃or
↓ ↓Hβ¬F¬βquoting)α
intoα
theα
argument-bodyα
andα
continueα
(3)α
scanning.
↓ α_β¬d¬βElseα∂ifα∂itα∂isα∂theα∂open-nestingα∂characterα∂thenα∂(assumingα∂VERRHTα∂isα∂enabled)α∂incrementα∞nesting
↓ ↓Hβεα¬βdepth,α∂thenα∂dependingα∂onα∂theα∂resultα∂doα∂theα∂following:α≡DEPTH=1,α∂doα∞nothing,α∞continueα∞(3)α∞scanning;
↓ ↓Hβε ¬βDEPTH>1,α
emitα
theα
characterα
(open-nesting)α
intoα
theα
argument-body,α
continueα
(3)α
scanning.
↓ α_βε<¬βElseαifαDEPTH>0αthenαemitαtheαcharacterαintoαtheαargument-bodyα
(thus¬
α
1¬βα
and¬¬α
<COMMA>¬βα
areα
quoted
↓ ↓Hβε\¬βratherα
thanα
beingα
acted-uponα
asα
below)α
andα
continueα
(3)α
scanning.
↓ α_βεz¬βElseαifαtheαcharacterαisαaαcommaαthenαdoαtheαfollowing:α∀Ifα
VE1LESα
isα
onα
thenα
emitα
theα
commaα
into
↓ ↓Hβπ_¬βtheα
argument-bodyα
andαcontinueα(3)αscanning;αelseαcloseαoffαtheαargument-bodyαandαputαitαinαtheαtable
↓ ↓Hβπ6¬βofα
arguments,α
thenα
openα
aα
newα
argument-bodyα
andα
continueα
(3)α
scanning.
↓ α_βπT¬βElseα
ifα
itα
isα
theα
brickα
characterα
thenα
parseα
theα
brick-commandα
asα
describedα
inα
(4),α
andα
continue
↓ ↓Hβπr¬β(3)α
scanningα
whenα
done.
↓ α_βλ⊂¬β(4)α∀Brick-commandsα∀areα∀parsedα∀inα∪theα∪usualα∪way,α∪exceptα∪thatα∪certainα∪commandsα∪(suchα∪as
↓ ↓Hβλ.¬βfont-select)αareαnotαimplementedαbecauseαtheyαemitαruboutsαwhichαareαnotαpermittedα
inα
arguments,α
and
↓ ↓HβλL¬βaα⊃fewα⊃otherα⊃commandsα⊃thatα⊃doα⊃strangeα⊃thingsα⊂areα⊂alsoα⊂notα⊂implemented.α Whenα⊂consideringα⊂brick
↓ ↓Hβλj¬βcommandsα⊂thatα⊂generateα⊂text,α⊂itα⊂isα⊂importantα⊂toα⊂distinguishα⊂betweenα⊂thoseα∂commandsα∂whichα∂emitα∂a
↓ ↓Hβ	¬βcharacterα⊂intoα⊂theα⊂outputα⊂streamα⊂(theα⊂argumentα⊂body)α⊂directlyα⊂(theseα∂commandsα∂are¬
α∂1¬∂A¬εq¬β,¬
α∂11¬βα∂and
↓ ↓Hβ	≡¬
1¬∂"¬¬<CH>¬β)α
andα
thoseα
whichα
spliceα
textα
intoα
theα
inputα
streamα
(theseα
commandsα
are¬
α
1¬∂D¬εq¬β,¬
α
1¬∂!¬β...,¬
α
1¬∂?¬β...,¬
α
1¬∂@¬β...
↓ ↓Hβ	B¬βand¬
α
1¬∂α¬β...).α↔Inαtheαlatterαgroupαofαcommands,αtheαsplicedαtextαwillαbeαseenαlaterαbyαtheα(3)αscanner,αand
↓ ↓Hβ	b¬βifα⊂theα⊂splicedα⊂textα∂containsα∂anyα∂ofα∂theα∂specialα∂charactersα∂mentionedα∂inα∂(3),α∂thenα∂theα∂corresponding
↓ ↓Hβ
¬βspecialα∞effectα∞willα∞ofα∞courseα∞occur.α≤(Itα∞isα∞generallyα∞aα∞goodα∞ideaα∞toα∞avoidα∞thisα∞exceptα∞inα∞thoseα
cases
↓ ↓Hβ
≡¬βwhenαsuchαcomplicatedαthingsαareαactuallyαneededαtoαachieveα
aα
complicatedα
effect,α
asα
shownα
inα
someα
of
↓ ↓Hβ
<¬βtheα
advancedα
examplesα
below.)
↓ α_β
X¬βThe¬
α⊂1¬∂!¬βα⊂and¬
α∂1¬∂?¬βα∂commandsα∂areα∂especiallyα∂interestingα∂whenα∂theyα∂notα∂onlyα∂areα∂executedα∂while
↓ ↓Hβ
x¬βscanningα~anα~argumentα~butα~theyα~containα~argumentsα~themselves.α4Whatα~happensα~isα→thatα→all
↓ ↓Hβ⊗¬βstatus-informationαaboutαthisαlevelαofαargument-scanningα(insideαtheαparsingαofα
theα
macro-callα
command
↓ ↓Hβ4¬βthatα
beganα
earlier)α
isα
savedα
onα
theα
stack,α
andα
thisα
pieceα
ofα
codeα
inα
POXα
(i.e.,α
(1)α
thruα(5)αasαdescribed
↓ ↓HβR¬βhere)αisαenteredαrecursivelyαtoαparseαtheαnewαlevelαofαmacro-callαandαargumentsα
toα
it.α∀Thenα
whenα
that
↓ ↓Hβp¬βlevelα
ofα
thisα
pieceα
ofα
codeα
returns,α
afterα
splicingα
theα
inputα
stream,α
thatα
status-informationα
isα
restored
↓ ↓Hβ
∞¬βandα∂scanningα∂isα∂resumedα∞atα∞thisα∞levelα∞asα∞ifα∞nothingα∞hadα∞happenedα∞(except,α∞ofα∞course,α∞thatα∞sinceα∞the
↓ ↓Hβ
,¬βinputα
streamα
hasα
beenα
spliced,α
theα
outputα
fromα
thatα
lower-levelα
ofα
macro-expansionα
willα
nowα
beα
seen
↓ ↓Hβ
J¬βbyα
theα
scannerα
atα
thisα
level).
↓ α_β
h¬βUsersαofαLISPα1.6αandαvariantsαthereofαwillαnote,αinαtheαcaseαwhereα
noα
parsingα
side-effectsα
occur
↓ ↓Hβ
ε¬β(i.e.,α∞when¬¬α∞<COMMA>α∞<OPEN>¬βα∞and¬¬α∞<CLOSE>¬βα∞areα∞notα∞includedα∞inα
theα
splicedα
text)α
andα
thereα
isα
exactlyα
one
↓ ↓Hβ
$¬βmacroα
callα
orα
oneα
quotedα
stringα
ofα
textαinαeachαargument,αthatαtheαfinalαresultαofαPOXαmacroαexpansion
↓ ↓Hβ
B¬βisα⊂exactlyα⊂theα⊂sameα⊂asα⊂theα∂correspondingα∂LISPα∂s-expressionα∂EVALuationα∂inα∂whichα∂everyα∂functionα∂is
↓ ↓Hβ
`¬βeitherα
anα
EXPRα
orα
aα
MACRO.α∀Forα
example,
↓ ∧Oβ
|¬
1¬∂!FOO(¬
1¬∂!BAZ(¬
1¬∂!FB;);,¬
1¶!GAR(FG););
↓ ↓Hβ∞≤¬βisα∩equivalentα∩toα∩theα∩s-expression¬∂α∩(FOOα∩(BAZα∩(FB))α∩(GARα∩(QUOTEα∩FG)))¬β.α$Inα∩POXα⊃thereα⊃isα⊃the
↓ ↓Hβ∞:¬βadditionalα∂facilityα∂ofα∂appendingα∂togetherα∂theα∂stringsα∂thatα∂areα∂generatedα∂byα∞multipleα∞macro-callsα∞and
↓ ↓Hβ∞X¬βquotedα
stringsα
inα
aα
singleα
argument,α
forα
example:
↓ ¬+β∞t¬
1¬∂!FOO(BAZ¬
1¶!GAR(FG););
↓ ↓Hβ∂∀¬βisα
roughlyα
equivalentα
to¬∂α
(FOOα
(APPENDα
(QUOTEα
BAZ)α
(GARα
(QUOTEα
FG))))¬βα
orα
somethingα
likeα
that.
↓ α_β∂2¬β(5)α
[Theα
onlyα
wayα
toα
reachα
thisα
pieceα
ofα
codeα
isα
toαjumpαhereαfromα(2)αafterαseeingαaαsemicolon
↓ 	∞¬α 19↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 20↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬βthere.]α~Ifα
theα
splice-enablingα
flagα
wasα
notα
setα
above,α
thenα
allα
theα
argumentsα
scannedα
inα
(3)α
etc.,α
and
↓ ↓Hβ↓f¬βtheα
macroα
bodyα
savedα
inα
(1),α
areα
nowα
flushedα
(theα
onlyα
purposeα
ofα
allα
thisα
scanningα
wasα
toα
makeα
the
↓ ↓Hβα∧¬βsyntaxα
comeα
outα
rightα
atα
thisα
level,α
althoughα
anyα
side-effectsα
(suchα
asα
storingα
aαvalueαinαaαregisterαor
↓ ↓Hβα"¬βdefiningα
aα
macroα
orα
overlay)α
duringα
scanningα
argumentsα
willα
ofα
courseα
remainα
done);α
If,α
however,α
the
↓ ↓Hβα@¬βsplice-enablingα
flagα
↓&was↓)αβαset,αthenαtheαcurrentαinputαstreamαisαnowαIOPUSHedαsoαthatαitαcanαbeαresumed
↓ ↓Hβα↑¬βlaterα∩whenα∩theα⊃expandedα⊃macroα⊃weα⊃areα⊃generatingα⊃hasα⊃becomeα⊃exhausted,α⊃andα⊃theα⊃inputα⊃isα⊃now
↓ ↓Hβα|¬βswitchedα
toα
theα
macroα
bodyα
weα
lookedαupαandαsetαasideαinα(1)αabove,αwithαtheαlistαofαargument-bodies
↓ ↓Hββ~¬βstandingα
byα
toα
beα
referencedα
wheneverα
an¬¬α
<ARGn>¬βα
tokenα
appearsαinαtheαmacroαbody.α⊗Inαanyαcase,αthis
↓ ↓Hββ8¬βlong-windedα∞pieceα∞ofα∞codeα∞forα∞scanningα∞macro-callsα∞nowα∞returnsα
controlα
toα
whoeverα
calledα
itα
atα
this
↓ ↓HββV¬βlevel.α (Theα⊂equivalentα⊂thingα⊂inα⊂LISPα⊂1.6α⊂evaluationα⊂ofα⊂s-expressionsα⊂isα⊂thatα⊂theα⊂callα∂toα∂anα∂MACRO
↓ ↓Hββt¬βgeneratesαanαexpressionαwhichαisαthenαre-evaluatedαbyαtheαimplicitαEVALαthatαcalledαitαwhileα
evaluating
↓ ↓Hβ∧∩¬βargumentsαtoαaαhigherαEXPRαorαMACROα--αyouαmayαalsoαcompareαPOXαmacrosαtoαEXPR's,αwhichα
produce
↓ ↓Hβ∧0¬βtheα
sameα
effectα
asα
MACROs,αalthoughαbyαaαdifferentαmechanismα--αofαcourse,αthisαparallelαbreaksαdown
↓ ↓Hβ∧N¬βifα∀commasα∀orα∀unmatchedα∀nestingα∀charactersα∀areα∀returned,α∪inα∪whichα∪caseα∪ratherα∪bizarreα∪parsing
↓ ↓Hβ∧l¬βside-effectsα
canα
occurα
inα
POXα
--α
inα
thisα
respect,α
LISPα
isα
cleaner,α
theα
onlyα
wayα
toα
makeα
similarα
things
↓ ↓Hβ¬
¬βhappenα∂isα∂toα∂explicitlyα∂mungα∂theα∂stack.)α≡Seeα∂(6)α∞forα∞whatα∞actuallyα∞happensα∞nowα∞whenα∞higher-level
↓ ↓Hβ¬(¬βroutinesα
attemptα
toα
inputα
charactersα
fromα
theα
macro-bodyα
withα
argument-listα
thatαnowαconstitutesαthe
↓ ↓Hβ¬F¬βinputα
stream.
↓ αHβεα¬βDESCRIPTION OF ALGORITHM FOR READING TEXT FROM A COMPOSITE INPUT STREAM
↓ α_βε ¬β(6)αWhenαanyαroutineαrequestsα
toα
inputα
aα
character,α
theα
characterα
comesα
fromα
eitherα
anα
inputα
file
↓ ↓Hβε>¬βorα
aα
macro-bodyαorαanαargument-bodyα(whichαisαtreatedαexactlyαlikeαaαmacro-bodyαexceptαthatαtheαlist
↓ ↓Hβε\¬βofαargumentsαisαalwaysαnullαinαthisαcase,αi.e.,αargumentsαcannotαthemselvesαhaveαarguments).α∃Whenα
any
↓ ↓Hβεz¬βfileα
orα
macro-bodyα
isα
exhausted,α
anα
IOPOPα
occurs,α
soα
thatα
inputα
continuesα
fromα
theα
next-higherα
input
↓ ↓Hβπ_¬βstreamα∂thatα∞wasα∞suspendedα∞earlier.α≤(Whenα∞theα∞top-levelα∞fileα∞isα∞exhausted,α∞anα∞END-OF-FILEα∞signalα∞is
↓ ↓Hβπ6¬βpassedα
upα
andα
causesα
POXα
toα
closeα
outα
processingα
andα
exit.)α_Finally,α
ifα
aα
specialα
tokenα
isα
seenα
while
↓ ↓HβπT¬βreadingα∪fromα∩aα∩macro-body,α∩theα∩followingα∩actionsα∩areα∩automaticallyα∩taken:α$The¬¬α∩<BRICK>¬βα∩tokenα∩is
↓ ↓Hβπp¬βreplacedα∞byα∞theα∞current¬
α∞1¬βα∞character;α∞the¬¬α
<ARGn>¬βα
tokenα
(ifα
theα
tableα
ofα
argumentsα
containsα
atα
leastα
n
↓ ↓Hβλ⊂¬βarguments)αcausesαanαIOPUSHαofαtheαmacro-bodyα
(withα
associatedα
tableα
ofα
arguments),α
andα
causesα
input
↓ ↓Hβλ!¬βtoα
beα
switchedα
toα
thatα
n↓#
th↓#α
argument-body,α
whichα
willα
nowα
beα
usedα
untilα
itαisαexhausted,αatαwhichαtime
↓ ↓HβλL¬βtheα
originalα
macro-bodyα
willα
resume.
↓ ∧Uβ	β¬Examples of macros with arguments
↓ ↓Hβ	&¬βHere'sα
the¬∂α
sbp¬βα
macroα
definitionα
referred-toα
earlier,α
andα
alsoα
usedα
laterα
toα
demonstrateα
theα
argument
↓ ↓Hβ	D¬βbinding-evaluationα
process:
↓ αHβ	`¬
1¬∂8sbp(main,sub,sup)[¬
1¬∂F1¬
1¬∂⊗⊗⊗main⊗¬
1¬∂←.¬
1¬∂→0¬
1¬∂↑=15;¬
1¬∂F2⊗sup⊗¬
1¬∂←.¬
1¬∂→1¬
1¶N
↓ αHβ	}¬
1¬∂←0¬
1¬∂→.¬
1¬∂↓=12;⊗sub⊗¬
1¬∂←.¬
1¬∂~1¬
1¬∂→.¬
1¬∂⊗⊗¬
1¶F1]
↓ ∧)β
7¬Detailed examples of argument evaluation
↓ α'β
Z¬∧(The macros called from here, and the fonts used here, are defined in POX2.POX[CSP,DOC].)
↓ ↓Hβ
x¬∂\!sbp(X,i-1,n);↓ ∧H\;Nothing special here, matching nesting characters, commas
↓ ↓Hβ∀¬∧X¬¬↓#si-1↓#
↓ ↓Xn↓#
↓ ↓Hβd¬∂\!sbp(X)(i-1)(n);↓ ∧H\;One of several other ways to do the same thing
↓ ↓Hβ
¬∧X¬¬↓#si-1↓#
↓ ↓Xn↓#
↓ α*β
O¬∧(You must do ¬π1¬∂⊂'400;¬∧ or equivalent before the syntax of nesting (below) will be allowed.)
↓ ↓Hβ
o¬∂\!sbp(X,(\f9i)-1,(\f9n));↓ ¬H\;Inside multiple-nested, everything is quoted
↓ ↓Hβ
¶\; Thus evaluation of \f9i doesn't occur while binding, but later
↓ ↓Hβ
)¬∧X¬	↓#si¬¬↓#s-1¬	↓#
↓ ↓Xn↓#
↓ ↓Hβ
f¶\; \!sbp(X,\f9i-1,\f9n); would not have worked
↓ ↓Hβ∞"¬∂\!sbp(X,(i,j+1),n);↓ ∧H\;Even commas are quoted rather than breaking to next arg
↓ ↓Hβ∞>¬∧X¬¬↓#si,j+1↓#
↓ ↓Xn↓#
↓ ↓Hβ∂∞¬∂\!sbp[X,i,(n)];↓ ∧H\;Nesting only applies to the particular nesting pair in use
↓ 	∞¬α 20↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 21↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬∧X¬¬↓#si↓#
↓ ↓X(n)↓#
↓ ↓Hβα_¬∂\!sbp(X,i,((n)));↓ ∧H\;Only the pair at comma-level are snarfed
↓ ↓Hβα4¬∧X¬¬↓#si↓#
↓ ↓X(n)↓#
↓ ↓Hββ∧¬∂\!sig;\!sbp(,i=1,n);↓ ∧H\;Null args are just as good as any others
↓ ↓Hββ ¬∞↓#sS¬¬↓#si=1↓#
↓ ↓ln↓#
↓ ↓Hββ{¬∂\!sbp(NESTING CHARACTERS:,⊗⊗//↓↓∂∂||""∧∧∨∨∪∪∩∩↑↑!!$$%%)|() [] {} <> ≤≥ ⊂⊃ →←|;\;
↓ ↓Hβ∧→¬∂\;Sometimes you want to pick a nesting character you aren't using in the body
↓ ↓Hβ∧5¬∧NESTING CHARACTERS:¬¬↓#s⊗⊗//↓↓∂∂||""∧∧∨∨∪∪∩∩↑↑!!$$%%↓#
↓ βk() [] {} <> ≤≥ ⊂⊃ →←↓#
↓ ↓H⬬¬∂\!sbp[X,f(i,j),n+2];↓ ∧H\;Avoid expressions like this, their implementation may change
↓ ↓Hβ¬!¬∧X¬¬↓#sf(i↓#
↓ ↓Xj)↓#
↓ ↓Hβ¬q¬∂\; -- Define a bunch of month names as if they were elements of an array almost
↓ ↓Hβε∂¬∂\∞MONTH1⊂January⊃\∞MONTH2⊂February⊃\∞MONTH3⊂March⊃\;
↓ ↓Hβε-¬∂\∞MONTH4⊂April⊃\∞MONTH5⊂May⊃\∞MONTH6⊂June⊃\;
↓ ↓HβεK¬∂\∞MONTH7⊂July⊃\∞MONTH8⊂August⊃\∞MONTH9⊂September⊃\;
↓ ↓Hβεi¬∂\∞MONTH10⊂October⊃\∞MONTH11⊂November⊃\∞MONTH12⊂December⊃\;
↓ ↓Hβπ%¬∂\8MONTH(NSTR)[\!MONTH⊗NSTR⊗;]\; -- Generates the name of month, takes decimal string
↓ ↓Hβπa¬∂\u'400101;\;↓ εHACCTIM UUO = CALLI 400101
↓ ↓Hβπ¬∂\L=-18;\/=31;\→D\%=12;\+=1;\→M\;↓ εHMonth number in register M now.
↓ ↓Hβλ≥¬∂\!MONTH(\DM);\; ↓ ¬H(1) Scan and evaluate and bind argument, resulting
↓ ↓Hβλ;¬∂\;↓ ¬H  in effectively \!MONTH(4); if this is still April
↓ ↓HβλY¬∂\;↓ ¬H  (it was when this paragraph was first written)
↓ ↓Hβλw¬∂\;↓ ∧H(2) Call macro with argument list to generate a splice
↓ ↓Hβ	∃¬∂\;↓ ∧H  in the input stream, which reads: \!MONTH4;
↓ ↓Hβ	3¬∂\;↓ βH(3) Continue reading characters from whatever the input stream is now,
↓ ↓Hβ	Q¬∂\;↓ βH  namely the string \!MONTH4; followed by the rest of the input file.
↓ ↓Hβ	o¬∂\;↓ αH(4) The \!MONTH4; now binds an empty list of args, calls the macro MONTH4,
↓ ↓Hβ

¬∂\;↓ αH  and splices the string April into the input stream, which is then read
↓ ↓Hβ
+¬∂\;↓ αH  and output in the current mode (pass-as-is in this example).
↓ ↓Hβ
I¬∧June
↓ ↓H⬬αLISPα
programmersα
willα
noteα
thatα
thisα
isα
quiteα
similarα
toα
theα
wayα
EXPRsα
areα
evaluatedα
inα
LISP.α_In
↓ ↓Hβ#¬αfact,α∩theα∩followingα∩macroα∩definitionα∩willα∩createα∩aα∩macroα∩thatα∩actsα∩likeα∩EVALα⊃inα⊃LISP,α⊃namely
↓ ↓HβA¬αEVAL(expression)α∃causesα∃expressionα∃toα∃getα∀evaluatedα∀twice,α∀onceα∀whileα∀evaluatingα∀andα∀binding
↓ ↓Hβ←¬αarguments,α
andα
thenα
againα
whenα
theα
resultα
ofα
theα
macroα
expansionα
isα
seenα
inα
theα
inputα
stream.α_The
↓ ↓Hβ}¬αusefulnessαofαthisα
isα
thatα
youα
canα
patchα
togetherα
variousα
strings,α
someα
quotedα
(youα
getα
whatα
youα
hadα
in
↓ ↓Hβ
~¬αtheα∂inputα∂file)α∂andα∂someα∂resultingα∂fromα∂macroα∂callsα∂orα∂commandsα∂like¬πα∂1¬∂D¬α,α∂andα∂thenα∞theα∞resultant
↓ ↓Hβ
:¬αstringα
getsα
evaluatedα
asα
ifαitαhadαbeenαinαyourαinputαfileαallαalong.α⊗Forαexample,αtheαaboveαeffectαof
↓ ↓Hβ
X¬αMONTH(NSTR)α
canα
beα
obtainedα
byα
callingα
EVALα
withα
theα
appropriatelyα
constructedα
argument.
↓ ↓Hβ
v¬∂\8EVAL(expr)[⊗expr⊗]\;↓ εHAs described above
↓ ↓Hβ
∀¬∂\!EVAL[[\!MONTH(]\DM);];\;↓ ¬H(1) The following is output to the argument body:
↓ ↓Hβ
2¬∂\;↓ ¬H  (a) The quoted string \!MONTH(
↓ ↓Hβ
P¬∂\;↓ ¬H  (b) The decimal string value of register M
↓ ↓Hβ
n¬∂\;↓ ¬H  (c) The close-parenthesis and semicolon
↓ ↓Hβ∞
¬∂\;↓ ∧H(2) The string spliced in is \!MONTH(4); if this is still April
↓ ↓Hβ∞*¬∂\!EVAL[\\!MONTH(\DM);];\; An older way that still works, quote the escape character by \\
↓ ↓Hβ∞H¬∂\; -- you see it below done both ways on the same line, no difference in effect --
↓ ↓Hβ∞f¬∧JuneJune
↓ ↓Hβ∂"¬∂\; Evaluate a macro and use the result as a brick command to evaluate:
↓ 	∞¬α 21↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 22↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬∂\!EVAL(\\\!FOO;);\; Like \\!FOO; parsed right-to-left sort-of
↓ ↓Hβα∧¬∂$8RECURSExFOO(N)[$F3(FOO)$←=⊗N⊗;$-=1;$?RECURSExFOO($D∀);]
↓ ↓Hβα"¬∂$; the above macro explicitly calls itself with one less than its argument
↓ ↓Hβα@¬∂$!RECURSExFOO{15};$; {} are just as good as () in such places as here
↓ ↓Hββ~¬β(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)(FOO)
↓ α_ββt¬βHereα∞isα∞aα∞macroα∞thatα∞canα∞beα∞usedα∞toα∞compileα∞pageα∞numbersα∞intoα∞aα
tableα
ofα
contentsα
orα
index,
↓ ↓Hβ∧∩¬βprovidingα∪thatα∪theα∪contentsα∩orα∩indexα∩appearsα∩inα∩theα∩outputα∩fileα∩afterα∩allα∩referencedα∩itemsα∩have
↓ ↓Hβ∧0¬βoccurred.α$Thisα∩isα∩theα∩macroα⊃usedα⊃inα⊃theα⊃POXα⊃writeupα⊃toα⊃makeα⊃theα⊃contentsα⊃andα⊃appendixα⊃page
↓ ↓Hβ∧N¬βreferences.
↓ αHβ∧l¬∂$8DEFCONT(ITEM)[$!EVAL(($∞CX⊗ITEM⊗{)$←#$¬=10;$?SPACEXY;$D#(}));]$;
↓ α_β¬
¬βTheα
threeα
typesα
ofα
nestingα
characters,¬∂α
[]α
()¬βαandα{},αareαusedαtoαisolateαnestingαprocessingαinto
↓ ↓Hβ¬(¬βthreeαlevelsαinαwhichαtheαotherαnestingαcharctersαareαpassedα
asα
text.α∀Thisα
macroα
assumesα
thatα
register
↓ ↓Hβ¬F¬∂#¬βα∪alwaysα∪containsα∩theα∩correctα∩pageα∩number,α∩andα∩thatα∩thereα∩isα∩aα∩macroα∩calledα∩"SPACEXY"α∩which
↓ ↓Hβ¬d¬βgeneratesα
anα
ASCIIα
040α
(space)α
characterα
toα
beα
usedα
asα
zero-fillα
toαtheαleftαofαone-digitαnumbers,αand
↓ ↓Hβεα¬βthatα
pageα
numbersα
aboveα
99α
doα
notα
occur.α~Here'sα
aα
detailedα
descriptionα
ofα
whatα
happensα
whenα
this
↓ ↓Hβε ¬βmacroα
isα
used:
↓ α_βε>¬∂$8¬β...;αatαstartαofαtheαfileα--αAαmacroαwithαargumentsαisαsetαup,αwithαtheαnameα"DEFCONT",αandαthe
↓ ↓Hβε\¬βbodyα<BRICK>α"!EVAL(("α<BRICK>α"∞CX"α<ARGα
1>α
{)"α
<BRICK>α
"←#"α
<BRICK>α
"¬=10;"α
<BRICK>α
"?SPACEXY;"
↓ ↓Hβεy¬β<BRICK>α
"D#(}));"α
whereα
<BRICK>α
denotesα
the¬
α
1¬βα
tokenα(storedαinternallyαasα177,175),α<ARGα1>αdenotes
↓ ↓Hβπ→¬βtheαargument-number-1αtokenα
(storedα
internallyα
asα
177,001),α
andα
otherα
partsα
areα
betweenα
quoteα
marks
↓ ↓Hβπ7¬βhereαtoαavoidα
ambiguityα
asα
youα
tryα
toα
readα
this.α∀(Thisα
assumesα
youα
haveα
VERESCα
turnedα
on.α∀Otherwise
↓ ↓HβπT¬βyouα∞justα∞getα∞theα∞dollar-signα∞characterα∞inα∞theα∞macroα∞bodyα∞insteadα
ofα
the¬
α
1¬βα
token,α
andα
whatα
happens
↓ ↓Hβπt¬βlaterα
inα
thisα
exampleα
whenα
"¬∂\¬β"α
isα
theα
brickα
characterα
won'tα
work.)
↓ α_βλ∩¬β\DEFCONT(A3);αatαtheαlocationαinαtheαfileαdesiredα("¬∂\¬β"αhappensαtoαbeαtheαbrickα
characterα
here)α
--
↓ ↓Hβλ0¬βTheα
bodyα
ofα
theα
DEFCONTα
macroα
isα
patchedα
intoα
theα
inputα
stream,α
andα
inα
theα
processα
ofα
readingα
itα
in
↓ ↓HβλM¬βtheα
<BRICK>α
andα
<ARGα
1>α
areα
replacedα
byα
"¬
1¬β"α
andα
"¬∂A3¬β"α
respectively,α
resultingα
inα
theα
followingα
string
↓ ↓Hβλm¬βbeingα
effectivelyα
inα
theα
inputα
stream:α∀"¬∂\!EVAL((\∞CXA3{)\←#\¬=10;\?SPACEXY;\D#(}));¬β".
↓ α_β	¬βTheα∞"EVAL"α∞macroα∞isα
thenα
called,α
andα
inα
theα
processα
ofα
bindingα
itsα
oneα
argumentα
theα
following
↓ ↓Hβ	)¬βhappens:α
(1)α
Theα
stringα
"¬∂\∞CXA3{¬β"α
isα
passedα
asα
(quoted)α
text;α
(2)α
Register¬∂α
#¬βα
isα
fetchedα
andα
testedα
to
↓ ↓Hβ	G¬βseeα_ifα_itα_isα↔lessα↔thanα↔ten,α↔ifα↔soα↔theα↔SPACEXYα↔macroα↔generatesα↔aα↔spaceα↔characterα↔(inα↔the
↓ ↓Hβ	e¬βargument-to-EVALα∞beingα∞constructed);α∞(3)α
Register¬∂α
#¬βα
isα
fetchedα
againα
,α
convertedα
intoα
decimalα
string,
↓ ↓Hβ
β¬βandαappendedαtoαtheαargument;α(4)αTheαstringα"¬∂}¬β"α(oneαcharacter)α
isα
passedα
(quoted);α
(5)α
Theα
inputα
text
↓ ↓Hβ
!¬β"¬∂);¬β"α
terminatesα
theα
bindingα
ofα
theα
firstα
argument,α
andα
terminatesα
allα
bindingα
forα
theα
callα
ofα
EVAL,α
and
↓ ↓Hβ
?¬βtheα
bodyα
ofα
EVAL,α
whichα
consistsα
solelyα
ofα
theα
<ARGα
1>α
token,α
isα
patchedα
intoα
theα
inputα
stream.
↓ α_β
]¬βThusα
ifαthisαisαdoneαonαpageα5,αtheαstringα"¬∂\∞CXA3{α5}¬β"α(theαargument)αisαnowαeffectivelyαinαthe
↓ ↓Hβ
{¬βinputα
stream.α∀Uponα
readingα
allα
thatα
(generated)α
input,α
theα
macroα
"CXA3"α
isα
defined,α
withα
bodyα
"¬∂α
5¬β".
↓ α_β_¬βLater,α
forα
exampleα
inα
theα
tableα
ofα
contentsα
page,α
theα
string¬
α
1¬∂!CXA3;¬βα
willα
generateα
theα
correct
↓ ↓Hβ8¬βpageα
referenceα
forα
itemα
A3α
inα
theα
document,α
namelyα
theα
stringα
"¬∂α
5¬β"α
inα
thisα
case.
↓ αβt¬βHere is the setup for the EVERYPAGE macro that was used in this writeup (\ is escape char.):
↓ ↓Hβ
⊃¬∂\!ACCTIM;\; load a register with system date-time by means of the ¬
1¶u command
↓ ↓Hβ
1¬∂\!EVAL((\∞TODAY[)\!DATIME;(]));\;
↓ ↓Hβ
O¶\; call DATIME (in POX3.POX[CSP,DOC]) and hardwire the result into the TODAY macro
↓ ↓Hβ
m¬∂\∞IDENT[POX writeup -- compiled by POX on ]\;
↓ ↓Hβ
¶\oEP1[2\!IDENT;\!TODAY; -- page ]\; hardwire all but the page number into an overlay
↓ βkβ
)¬βand here is the actual macro definition ($ is escape char.):
↓ ↓Hβ
G¬∂$8EVERYPAGE(dummyarg)[$←#$+=1;$→#$oEP2{2 $D#}$&EP←EP1&EP2;$N
↓ ↓Hβ
e¬∂$QA$1EP;$→A$2EP;$¬A$/=2;$+=850;$→A$N
↓ ↓Hβ∞β¬∂$WEP,A=150;$WEP,A=2100;$qA]$; generate page number, combine overlays, align
↓ α_β∞?¬βNoteαthatαsomeαtrickyαthingsαwereαdoneα
inα
creatingα
theα
everypageα
macroα
soα
thatα
theα
time-of-day
↓ ↓Hβ∞]¬βwouldn'tαbeαrecompiledαonαeveryαpageα(otherwiseαifαtheαsystemαwereα
veryα
busy,α
eachα
pageα
mightα
have
↓ ↓Hβ∞{¬βaα≥differentα≤time-of-compilation).α8(Nowα≤thatα≤thisα≤writeupα≤usesα≤time-last-editedα≤insteadα≤of
↓ ↓Hβ∂→¬βcurrent-time-during-compiling,α∩forα∩pageα∩headings,α∩avoidingα∩recompilingα⊃theα⊃headerα⊃merelyα⊃savesα⊃a
↓ ↓Hβ∂7¬βslightα
amountαofαtimeαduringαcompilation.)α⊗Inαgeneral,αinαPOXαtheαorderαofαevaluationαofαargumentsαmay
↓ 	∞¬α 22↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 23↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬βbeα∂controlledα∂byα∂meansα∂ofα∂callsα∂toα∂EVALα∂(toα∂causeα∂anα∂extraα∂evaluationα∂toα∂occur)α∞andα∞usingα∞nesting
↓ ↓Hβ↓f¬βcharactersα∂toα∂quoteα∂portionsα∂ofα∂argumentsα∂(toα∂suppressα∂orα∂postponeα∂anα∂evaluation).α≡Theα∞following
↓ ↓Hβα∧¬βexampleα
shouldα
showα
youα
someα
ofα
theα
optionsα
youα
canα
createα
byα
useα
ofα
thisα
technique.
↓ α_βα"¬βSupposeαthatαMONTHNUMBERαisαaαmacroαthatαasksαtheαsystemα
forα
theα
dateα
andα
time,α
andα
decodes
↓ ↓Hβα@¬βtheα
numberα
ofα
monthα
(0α
toα
11α
decimal)αleavingαitαinαregisterαM.α⊗SupposeαthatαMONTH1αisαaαmacroαthat
↓ ↓Hβα↑¬βisα∩theα∩ASCIIα∩nameα∩ofα∩theα∩firstα∩monthα⊃(January)α⊃etc.α⊃upα⊃toα⊃MONTH12α⊃=α⊃December.α"Supposeα⊃that
↓ ↓Hβα|¬βMONTHN(n)α∞isα∞aα∞macroα∞withα∞oneα∞argumentα∞thatα∞concatenatesα∞theα∞stringα∞"¬∂$!MONTH¬β"α∞withα∞itsα
argument
↓ ↓Hββ~¬β(assumedαtoαbeαaα
decimalα
numberα
string)α
andα
withα
aα
semicolon,α
soα
thatα
forα
exampleα
"¬∂$!MONTHN(3)¬β;"α
will
↓ ↓Hββ8¬βpatchα
"¬∂$!MONTH3;¬β"α
intoα
theα
inputα
streamα
whichα
willα
thenα
generateα
"¬∂March¬β".α_Theα
followingα
commands
↓ ↓HββV¬βwillα
thenα
generateα
theα
correctα
result,α
assumingα
thisα
monthα
isα
neitherα
Januaryα
norα
December:
↓ ↓Hββt¬∂$!MONTHNUMBER;$;
↓ ↓Hβ∧∩¬∂This month is $!MONTHN($DM); and next month is $!MONTHN($←M$+=1;$D∀);.
↓ ↓Hβ∧0¬∂Last month was $!MONTHN($←M$-=1;$D∀);.
↓ α_β∧N¬βNoteα∞thatα
ifα
theα
contentsα
ofα
registerα
Mα
areα
changed,α
theα
resultα
ofα
callingα
MONTH($DM)α
changes
↓ ↓Hβ∧l¬βaccordingly,α
andα
ifα
anyα
ofα
theα
MONTH1α
MONTH2α
...α
MONTH12α
macrosα
areα
changedα
(suchα
asα
toα
aα
setα
of
↓ ↓Hβ¬
¬βabbreviationsαforαtheαmonths)αthenαtheα
resultα
ofα
callingα
MONTHNα
willα
changeα
inα
theα
particularα
casesα
that
↓ ↓Hβ¬(¬βwereα⊃changed.α"Thatα⊃isα⊃becauseα⊃registerα⊃Mα⊃isα⊃referencedα⊃andα⊃macrosα⊂MONTHN($DM)α⊂andα⊂MONTH6
↓ ↓Hβ¬F¬β(assumingαthisαisαstillαJune)αareαcalledαeveryαtime¬∂α
$!MONTH($DM);¬βα
appearsα
inα
theα
inputα
stream.α∀Thusα
if
↓ ↓Hβ¬d¬βTHISMONTHα⊂isα⊂definedα⊂asα⊂theα⊂successiveα∂callingα∂ofα∂MONTHNUMBERα∂andα∂MONTH($DM)α∂thenα∂everytime
↓ ↓Hβεα¬βTHISMONTHα∞isα∞calledα∞registerα∞Mα∞willα∞beα
clobberedα
andα
MONTHN($DM)α
andα
MONTH6α
willα
beα
called.α~By
↓ ↓Hβε ¬βappropriateα∂controlα∂ofα∂evaluation,α∂itα∂isα∂possibleα∂toα∂callα∂someα∂ofα∂thoseα∂thingsα∂onceα∂atα∂theα∂beginning
↓ ↓Hβε>¬β(whenα
THISMONTHα
isα
defined)α
andα
hardwireα
theirα
resultsα
intoα
theα
definitionα
ofα
THISMONTH:
↓ ↓Hβε\¬∂$!EVAL(($∞THISMONTH[)$!MONTHNUMBER;$!MONTHN($DM);(]))$;
↓ ↓Hβεz¬∂$; "$∞THISMONTH[" is quoted, "$!MONTHNUMBER;" and "$!MONTH;" are called
↓ ↓Hβπ_¬∂$; resulting in the string "June" if it is still June, "]" is quoted, and
↓ ↓Hβπ6¬∂$; all these parts are concatenated into one string which is passed to
↓ ↓HβπT¬∂$; EVAL as its argument "$∞THISMONTH[June]" which is then patched into
↓ ↓Hβπr¬∂$; the input stream, causing THISMONTH to be permanently defined as "June".
↓ ↓Hβλ.¬∂$!EVAL(($∞THISMONTH[)$!MONTHNUMBER;($!MONTHN{)$DM(};]))$;
↓ ↓HβλL¬∂$; "$∞THISMONTH[" is quoted, "$!MONTHNUMBER;" is called resulting in register
↓ ↓Hβλj¬∂$; M getting defined now, "$!MONTHN{" is quoted, the decimal conversion of
↓ ↓Hβ	λ¬∂$; the contents of M we have just computed earlier come next, then "};]"
↓ ↓Hβ	&¬∂$; is quoted, and all the above is concatenated into
↓ ↓Hβ	D¬∂$; "$∞THISMONTH[$!MONTHN{6};]" which causes THISMONTH to be defined so as
↓ ↓Hβ	b¬∂$; to call MONTHN(6) every time.  Thus register M is freed for other use
↓ ↓Hβ
¶$; without affecting THISMONTH but redefinition of MONTH6 will cause
↓ ↓Hβ
≡¬∂$; THISMONTH to change accordingly.
↓ ¬∀β
X¬ALTERNATE OUTPUT FILES
↓ α_β
{¬βWhereasαthe¬
α1¬∂@¬βαcommandαreadsα
inα
aα
fileα
andα
processesα
itα
asα
ifα
theα
textα
inα
itα
hadα
beenα
editedα
into
↓ ↓Hβ≠¬βtheα∞mainα∞inputα∞file,α∞theα∞commandsα∞inα∞thisα∞sectionα∞areα∞usedα∞toα∞writeα∞textα∞intoα∞aα∞fileα
(overwritingα
any
↓ ↓Hβ9¬βexistingα
fileα
byα
theα
sameα
name),α
usuallyα
forα
theα
purposeα
ofα
readingα
itα
backα
inα
laterα
andα
processingα
it
↓ ↓HβW¬βfurtherα∂atα∂thatα∂time.α≡Thusα∂aα∂tableα∂ofα∂contentsα∂orα∞aα∞batchα∞ofα∞footnotesα∞canα∞beα∞generatedα∞overα∞the
↓ ↓Hβu¬βcourseα
ofα
aαcompleteαdocumentαorαaαchapter,αthenαreadαbackαinαatαtheαendαandαemittedαfullyαprocessed
↓ ↓Hβ
∪¬βintoαtheαmainα(.XGP)αoutputαfile.α⊗Aα
tableα
ofα
contentsα
emittedα
atα
theα
endα
ofα
aα
documentα
canα
ofα
courseα
be
↓ ↓Hβ
1¬βmovedα
upα
toα
theα
frontα
ofα
theα
documentα
beforeα
binding.
↓ ↓Hβ
N¬
1¬∂<¬εq¬¬<FILNAM>¬∂;¬β↓ β⊂(Uα
Jα
CRα
o)α
--α
openα
theα
file¬¬α
<FILNAM>¬βα
onαlogicalαi/oαchannel¬εαq¬β.α⊗Available
↓ β⊂β
v¬βlogicalαchannelsαareα
numberedα
fromα
1α
toα
approximatelyα
10α
(decimal)α
soα
I
↓ β⊂β
∀¬βdon'tα∞expectα∞anyα∞normalα∞usersα∞toα∞runα∞outα∞ofα∞channels.α≠Theα
following
↓ β⊂β
2¬βcommand,α∂forα∂example,α∂willα∂createα∂theα∂file¬∂α∞CONT.TMP¬βα∞onα∞yourα∞default
↓ β⊂β
O¬β(DSKPPN)α
diskα
area:¬
α∀1¬∂<=1;CONT.TMP;¬βα
.
↓ ↓Hβ
n¬
1¬∂=¬εq¬¬<OPEN><TEXT><CLOSE>
↓ ↓Hβ∞⊃¬β  ↓ β⊂(Uα
Jα
CRα
oα
A)α
--α
selectα
logicalα
i/oα
channel¬εα
q¬βα
forα
output,α
parseα
theα
text
↓ β⊂β∞9¬βbetweenα⊃matching¬¬α⊃<OPEN>¬βα⊃and¬¬α⊂<CLOSE>¬βα⊂exactlyα⊂theα⊂sameα⊂wayα⊂asα⊂ifα⊂it
↓ β⊂β∞W¬βwereα
anα
argumentα
toα
aα
macroα
(exceptα
thatα
commaα
doesn'tα
causeα
break
↓ β⊂β∞u¬βinα
parsingα
becauseα
onlyα
oneα
"argument"α
isα
everαparsed).α⊗Theαresultαof
↓ β⊂β∂∪¬βparsingα∂theα∂textα∂isα∂writtenα∂intoα∂theα∞fileα∞openα∞onα∞thatα∞channel.α≤After
↓ β⊂β∂1¬βreaching¬¬α⊗<CLOSE>¬βα⊗theα⊗outputα⊗isα⊗switchedα⊗backα⊗toα⊗normalα⊗butα∃the
↓ 	∞¬α 23↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 24↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ β⊂β↓H¬βalternateα∂outputα∂fileα∂isα∞leftα∞openα∞inα∞caseα∞additional¬
α∞1¬∂=¬βα∞commandsα∞are
↓ β⊂β↓h¬βissued.α4Ofα~course,α~ifα~severalα→alternateα→outputα→filesα→areα→open
↓ β⊂βαε¬βsimultaneously,α∞chunksα∞ofα∞textα
mayα
beα
emittedα
intoα
themα
inα
whichever
↓ β⊂βα#¬βsequenceα∞theα∞userα∞desiresα∞byα
usingα
one¬
α
1¬∂=¬βα
commandα
forα
eachα
chunk.
↓ β⊂βαC¬β(Note,α⊂justα⊂asα⊂inα⊂argumentsα⊂toα⊂macros,α⊂onlyα⊂pureα⊂ASCIIα⊂textα⊂mayα∂be
↓ β⊂βαa¬βgenerated,α∞notα∞XGPα∞escapeα∞sequencesα∞likeα∞fontα∞selectsα∞etc.α~Typically
↓ β⊂βα¬βwhatα
isα
emittedα
areα
sequencesα
thatα
includeα
theα
brickα
character,α
quoted
↓ β⊂ββ≥¬βsoα⊂thatα⊂theα∂brickα∂charactersα∂areα∂actuallyα∂emittedα∂intoα∂theα∂fileα∂rather
↓ β⊂ββ;¬βthanα∪evaluatedα∪now,α∪thenα∪whenα∪theα∪fileα∩isα∩readα∩backα∩inα∩theα∩brick
↓ β⊂ββY¬βcommandsα
willα
beα
evaluatedα
(executed).)
↓ ↓Hββv¬
1¬∂>¬εq¬β↓ β⊂(UαJαCRαo)α--αcloseαtheαfileαonαlogicalαi/oαchannel¬εαq¬β.α∃Thisα
mustα
beα
done
↓ β⊂β∧≡¬βbeforeα
theα
fileα
canα
beα
readα
backα
inα
orα
accessedα
byα
anotherα
program.
↓ ↓Hβ∧;¬
1¬∂E¬¬<IN>↓#v1↓#<OUT>↓#v1↓# ... <IN>↓#vn↓#<OUT>↓#vn¬∂;
↓ ↓Hβ∧c¬β   ↓ β⊂(UαJαCRαoαA)α
--α
startα
upα
aα
pseudo-teletypeα
inferiorα
jobα
underα
POX,α
type
↓ β⊂β¬↓¬¬<IN>↓#v1¬βα∂intoα∂it,α∂waitα∞untilα∞itα∞typesα∞outα∞allα∞of¬¬α∞<OUT>↓#v1¬β,α∞continueα∞alternating
↓ β⊂β¬'¬βinputαandαwaitαforαoutputαthrough¬¬α<OUT>↓#vn¬β,αthenαreleaseαtheαPTY.α⊗Thisα
is
↓ β⊂β¬M¬βusefulαforαrunningαSSORTαacrossαaαfileαthatαhasαbeenα
writtenα
outα
during
↓ β⊂β¬k¬βcompilationα
ofα
aα
documentα
beforeα
readingα
itα
backα
inα
asα
theα
lastαpartαof
↓ β⊂βε	¬βtheα
compilation.
↓ ↓HβεE¬βExample of generating footnotes for end of the chapter:
↓ ↓Hβεm¬∂\<=2;FOOT.TMP;\←=0;\→#\N¬β↓ ¬αAt front of chapter, open file and reset page number
↓ ↓Hβπ∃¬∂\==2;(\←#\+=1;\→#\N¬β↓ ¬)Each footnote:  Increment footnote counter, then...
↓ ↓Hβπ3¬∂\D#\"\jMcCarthy, John, LISP 1.5 Programmer's Manual.\"\.
↓ ↓HβπQ¬∂)\N¬β↓ β`Emitα⊂footnoteα⊂numberα⊂inα⊂decimalα⊂atα⊂leftα⊂margin,α∂passα∂aα∂quoted
↓ β⊂βπo¬βbrickα∞jα∞command,α∞passα∞theα∞textα∞ofα∞theα∞footnote,α
passα
aα
quotedα
brickα
.
↓ β⊂βλ
¬βcommand,α
de-selectα
alternateα
output.α∀Normallyα
allα
thisα
wouldα
beα
defined
↓ β⊂βλ+¬βasα∩aα∩macroα∩thatα∩tookα∩theα∩textα∩betweenα∩the¬∂α∩\j¬βα∩andα∩the¬∂α∩\.¬βα∩asα∩an
↓ β⊂βλI¬βargument.
↓ ↓Hβλq¬∂\>=2;\N¬β↓ π
At end of chapter, close the file
↓ ↓Hβ	∂¬∂\@FOOT.TXT;\N¬β↓ ¬Pand read it back in (and parse it) in one chunk.
↓ ∧|β	|¬ENABLING SPECIAL FEATURES
↓ α_β
∨¬βInα
theα
followingα
threeαcommands,αtheαleftαhalfαof¬εαq¬β,αspecifiesαaαbatchαofαfeatures,αandαtheαbitsαin
↓ ↓Hβ
G¬βtheα
rightα
halfα
specifyα
whichα
featuresα
inα
thatα
batchα
areα
affectedα
(orα
inα
theα
caseα
ofα
theα
firstα
command,
↓ ↓Hβ
e¬βwhichα
areα
on,α
sinceα
allα
areα
affectedα
oneα
wayα
orα
theα
otherα
inα
thisα
obsoleteα
command).α_Thusα
youα
may
↓ ↓Hββ¬βchangeαasαmanyαfeaturesαinαoneαbatchαatαaαtime,αbutαmustαuseαseparateαcommandsαforαeachα
batch.α∀The
↓ ↓Hβ!¬βcommandsαareαgivenαfirst,αthenαtheα
descriptionsα
ofα
eachα
feature,α
withα
theα
batchα
numberα
andα
bitα
position
↓ ↓Hβ?¬β(mask)α∞thatα∞correspondα∞toα∞it.α~Allα
bitsα
areα
initiallyα
zero,α
andα
bitsα
notα
mentionedα
belowα
shouldα
beα
left
↓ ↓Hβ]¬βthatα
wayα
toα
allowα
forα
newα
bitsα
thatα
willα
beα
definedα
later.
↓ ↓Hβz¬
1¬∂`¬εq¬β↓ ββ(U)α--αsetαspecialαfeaturesαhalfwordαfromαrightαhalfαof¬εαq¬βα--αThisα
command
↓ βββ
"¬βisα∂notα∂recommendedα∂becauseα∂itα∂clobbersα∂bitsα∞youα∞mayα∞haveα∞setα∞earlier
↓ βββ
@¬βandα
forgotten.
↓ ↓Hβ
]¬
1¬∂⊂¬εq¬β↓ ββ(U)α
--α
useα
rightα
halfα
of¬εα
q¬βα
asα
aα
maskα
forα
turningα
onα
bits,α
leavingα
theα
rest
↓ βββ
¬¬βunaffected.
↓ ↓Hβ
"¬
1¬∂⊃¬εq¬β↓ ββ(U)α--αuseαrightαhalfαof¬εαq¬βαasαaα
maskα
forα
turningα
offα
bitsα
(aα
"1"α
inα
theα
mask
↓ βββ
J¬βturnsα∂theα∂bitα∂off,α∂theα∂sameα∞asα∞theα∞ANDCMα∞instruction),α∞leavingα∞theα∞rest
↓ βββ
h¬βunaffected.
↓ ↓Hβ∞ε¬βUntilα∪youα∪useα∪anyα∪ofα∪theα∪aboveα∪commandsα∪toα∩changeα∩theseα∩flags,α∩allα∩theα∩bitsα∩listedα∩belowα∩are
↓ ↓Hβ∞$¬βnot-enabledα
(zeroα
bit).α~Generallyα
itα
isα
advisableα
toα
turnα
bitsα
onα
atα
theα
beginningα
andα
leaveα
themα
on,
↓ ↓Hβ∞B¬βhoweverα
itα
isα
frequentlyα
usefulα
toα
toggleα
themα
onα
andα
off.α_Ifα
funnyα
thingsα
canαhappenαwithαtoggling,αI
↓ ↓Hβ∞`¬βwillαtryαtoαwarnαyouαinαtheαdescriptionαbelowα--αpleaseα
excuseα
theα
sloppyα
(unjustified)α
appearance,α
the
↓ ↓Hβ∞}¬βtextα∂wasα∂copiedα∂fromα∂theα∂sourceα∂programα∂forα∂POXα∂withα∂veryα∂littleα∂editing.α≡Also,α∂theα∞"$"α∞character
↓ ↓Hβ∂≠¬βratherα
thanα
"¬
1¬β"α
representsα
theα
brickα
characterα
below.
↓ α_β∂;¬βIα∂recommendα∂thatα∂allα∂newly-createdα∂POXα∂filesα∂turnα∂onα∞VERSMT,α∞VERXX1α∞andα∞VE1QESα∞nearα∞the
↓ 	∞¬α 24↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 25↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬βstartα
ofα
theα
file.α~Alsoα
desirableα
mostα
ofα
theα
timeα
areα
VERSIM,α
VERSGK,α
VERREM,α
VERRHT,α
VERESCα
and
↓ ↓Hβ↓e¬βVE1OPN.α_Allα
ofαtheseαcanαbeαturnedαonαby¬
α1¬∂⊂'0302454;¬
1¬∂⊂'1000003;¬βαatαtheαveryαbeginningαofαyour
↓ ↓Hβᬬβsourceα
file.α∀Iα
recommendα
againstα
usingα
VER56P,α
VERREGα
andα
VERIDC.
↓ ↓Hβα#¬∂; THESE BITS ARE IMPLEMENTED CURRENTLY:
↓ α(βα]¬Batch (left half of ¬εq¬) = 0
↓ ↓Hβ⬬∂VERHHR←←000001↓ βH;ENABLE H AND h HEIGHT OF FONT PSEUDO-REGISTER -- Has its effect at
↓ ↓Hββ#¬∂  the moment you attempt using any command that takes a register as an argument,
↓ ↓HββA¬∂  and you specify register "H" or "h".
↓ ↓Hββ←¬∂VERTRC←←000002↓ βH;TRACE AND OTHER TTY OUTPUT
↓ ↓Hββ}¬∂VERSIM←←000004↓ βH;ENABLE <LF> SIMULATOR, ENABLE SIDE EFFECT OF REGISTER ";"
↓ ↓Hβ∧≠¬∂  ;This simulates XGPSER enough to know at all times where it is on the page
↓ ↓Hβ∧9¬∂  ;It allows sorting each output thing according to Y0 so that XGPSER doesn't complain
↓ α_β∧W¬βWARNINGα∞--α∞Thisα∞bitα∞canα∞notα∞beα∞turnedα∞offα∞atα∞allα∞(Iα∞haven'tα∞implementedα∞itα∞becauseα∞itα
doesn't
↓ ↓Hβ∧u¬βseemα
likeα
aα
goodα
ideaα
forα
severalα
reasons)α
--α
Regardingα
turningα
itα
on,α
ifα
youα
turnα
itα
onα
afterα
oneα
or
↓ ↓Hβ¬∪¬βmoreαpagesαofαtextαhaveαbeenαoutput,αtheαbottomαmarginα
willα
probablyα
getα
screwedα
upα
--α
Ifα
youα
turnα
it
↓ ↓Hβ¬1¬βonα
afterα
textα
hasα
beenα
outputα
onα
theα
currentα
page,α
theα
xspoolerα
willα
probablyα
abortα
dueα
toα
incorrect
↓ ↓Hβ¬O¬βY0α
sequenceα
--α
Inα
conclusion,α
youα
shouldα
turnα
onαtheαsimulatorαbeforeαanyαtextαisαoutputαatαall,αorαnot
↓ ↓Hβ¬m¬βatα
all.
↓ α_βε
¬βWARNINGα
--α
Youα
mustα
doα
atα
leastα
one¬
α
1¬∂F¬βα
afterα
turningα
onα
theα
simulatorα
beforeα
outputtingα
any
↓ ↓Hβε*¬βtext,α
orα
youα
willα
getα
screwed.
↓ ↓HβεH¬∂VERSGK←←000010↓ βH;Double-gap after . : etc. if double-space input
↓ ↓Hβεf¬∂VER56P←←000020↓ βH;ENABLE $5 AND $6 INITIALIZATION WITH TLIM1 AND BLIM1 DATA --
↓ ↓Hβπ∧¬∂  See BUG#2 -- Takes effect when a $M command is executed on a font not previously
↓ ↓Hβπ"¬∂  loaded.
↓ ↓Hβπ@¬∂VERREM←←000040↓ βH;ENABLE REM'S SYNTAX FOR MACROS WITH ARGS DEFINITIONS -- Takes
↓ ↓Hβπ↑¬∂  effect when the macro is being defined.
↓ ↓Hβπ|¬∂VEREVE←←000100↓ βH;ENABLE EVERYPAGE MACRO
↓ ↓Hβλ_¬∂  ;If on, once on every new page of output it simulates ¬
1¶!EVERYPAGE; occurring in
↓ ↓Hβλ7¬∂  your input file (at the first occurrance of <CR><LF> or ¬
1¶;...<CR><LF> while in
↓ ↓HβλW¬∂  pass-as-is mode, or a few other places -- If you want this to happen on the page
↓ ↓Hβλs¬∂  where you turn on the feature, you will have to do ¬
1¶!EVERYPAGE; yourself once there.
↓ ↓Hβ	∪¬∂  WARNING!! -- Because of the fact that this macro is called at an almost-random
↓ ↓Hβ	1¬∂  location with respect to your input file, it must be constructed so as to
↓ ↓Hβ	O¬∂  avoid clobbering anything (registers or input syntax, usually) that might
↓ ↓Hβ	m¬∂  confuse the main processing of the file.  Any registers used should be saved
↓ ↓Hβ
¶  and restored using push/pop commands.  Watch out for $ $N $; $, etc. which
↓ ↓Hβ
)¶  will cause strange and confusing destruction of your world if the terminating
↓ ↓Hβ
G¶  <CR><LF> or <FF> or whatever is missing from your everypage macro.
↓ ↓Hβ
e¬∂;000000 000200↓ βH;(RESERVED FOR FUTURE COLIST-KLUDGE)
↓ ↓Hββ¬∂VERRHT←←000400↓ βH;ENABLE MODIFIED WAY TO PARSE ARGS THAT HAVE NESTING CHARS IN THEM
↓ ↓Hβ!¬∂  (i.e., anything inside nesting inside nesting is quoted, etc., see
↓ ↓Hβ?¬∂   the earlier section "Detailed examples of argument evaluation")
↓ ↓Hβ]¬∂  Takes effect when a parameter is being parsed prior to being bound to dummy arg.
↓ ↓Hβ{¬∂VERREG←←001000↓ βH;$'<OCTAL>; OLD WAY -- 177 ALWAYS EVEN IF IT DEFEATS POX QUIETLY
↓ ↓Hβ
→¬∂VERSMT←←002000↓ βH;$'<OCTAL>; NEW WAY -- 177 ONLY IF NEEDED
↓ ↓Hβ
7¬∂VERIDC←←004000↓ βH;SPECIAL REQUEST BY RHT, NO ERROR IF ; OMITTED AFTER MACRO CALL
↓ ↓Hβ
U¬∂VERPAG←←010000↓ βH;AUTOMATIC PAGE CHANGE W/OUT FIRST WARNING, TEXT AND $O OUTPUT OVL
↓ βHβ
s¶(If the input file is exhausted when page-overflow
↓ βHβ
⊃¬∂ happens, POX changes pages even if this  switch is off,
↓ βHβ
/¶ since it can't show input-context at that point.)
↓ ↓Hβ
M¬∂VERLCS←←040000↓ βH;CHANGE WAY TABS IN PASSIS ARE DONE TO 1/10 OF RMAR-LMAR * INPUT COL
↓ ↓Hβ
k¶  WARNING -- Only tabs in input file do the right thing.  A counter
↓ ↓Hβ∞	¬∂  keeps track of what column in the input file we are at, and
↓ ↓Hβ∞'¬∂  rounds up to multiple of 8 when a tab occurs in the input FILE
↓ ↓Hβ∞E¬∂  (not in a macro expansion patch).  Thus any text just after a tab
↓ ↓Hβ∞c¬∂  in the input file will appear on the output page in approximately
↓ ↓Hβ∂↓¬∂  the same column on the XGP.  Note that a tab in a macro will
↓ ↓Hβ∂∨¬∂  activate this mechanism, but it will go to a position corresponding
↓ ↓Hβ∂=¬∂  to the input FILE rather than what that file would have been with
↓ 	∞¬α 25↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 26↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬∂  the macros inserted in it.  Note that the three low order bits
↓ ↓Hβ↓f¬∂  of the column counter are ignored also.  A warning message
↓ ↓Hβα∧¬∂  will be generated if a tab is encountered in a macro while not at
↓ ↓Hβα"¬∂  a multiple of 8 columns, until such time as
↓ ↓Hβα@¬∂  an implementation is found that satisfies everyone.
↓ ↓Hβα↑¬∂VERESC←←100000↓ βH;CAUSES BRICK CHAR IN MACRO BODY TO BE SAME AS ⊗$⊗ FEATURE, i.e.
↓ ↓Hβα|¬∂  the <BRICK> token rather than the character itself -- This bit is tested at the
↓ ↓Hββ~¬∂  time the macro body is being parsed and associated with the macro name
↓ ↓Hββ6¬∂  (at define-time during execution of the ¬
1¬∂8 or ¬
1¬∂∞ command).
↓ ↓HββV¬βWARNING!!α
(75α
AUGα
03)α
--α
Theα
tokenα
inα
theα
macroα
bodyα
isα
replacedα
byα
theαcurrentαbrickαcharacterαat
↓ ↓Hββt¬βtheα
timeα
theα
tokenα
isα
rescannedα
asα
input,α
notα
earlierα
whenα
theα
macroα
bodyα
isα
patchedα
intoα
theα
input
↓ ↓Hβ∧∩¬βstream,α
soα
ifα
yourα
brickα
characterα
atα
macro-defineα
timeα
wasα
\α
andα
theα
macroα
bodyα
includesα
\|$...$|\α
it
↓ ↓Hβ∧0¬βwillα
beα
compiledα
asα
<brick>|$...$|<brick>α
thenα
ifα
whenα
youα
callα
itα
\α
isα
theα
brickα
character,α
theα
<brick>|$
↓ ↓Hβ∧N¬βwillαbeαconvertedαtoα\|$αandα$αwillαbeαyouαbrickαcharacterαforα...,αthenα$|<brick>αwillα
beα
convertedα
toα
$|$
↓ ↓Hβ∧l¬βinsteadαofαtheα$|\αyouαprobablyαintended,αandαyouαwillαtotallyαloseα
justα
likeα
thisα
POXα
writeupα
didα
before
↓ ↓Hβ¬
¬βIα
locatedα
thisα
subtleα
bugα
(inα
thisα
writeup)α
andα
fixedα
it.α~Ifα
youα
wantα
theα
effectα
desiredα
(whateverα
the
↓ ↓Hβ¬(¬βbrickαcharαis,αchangeαitαtoα$,α
thenα
backα
again)α
youα
canα
probablyα
makeα
itα
workα
byα
havingα
yourα
macroα
call
↓ ↓Hβ¬F¬βEVALα∞withα∞aα∞quotedα∞stringα∞containingα
theα
brickα
character,α
therebyα
forcingα
bothα
<brick>α
tokensα
toα
be
↓ ↓Hβ¬d¬βreplacedα∩byα∩theα∩sameα∩brickα∩characterα∩atα∩argument-bindingα∩(argα∩toα∩EVAL)α∩timeα⊃andα⊃usedα⊃inα⊃both
↓ ↓Hβεα¬βinstances.α∀Noteα
thatα
thisα
subtleα
problemα
happensα
theα
sameα
withα
theα
oldα
⊗$⊗α
syntaxα
inα
macroα
bodies.
↓ ↓Hβε ¬∂VERXX1←←200000↓ βH;IMPLEMENTS CORRECT OUTPUT-OVERLAY AS OF 1975.JUL/AUG
↓ ↓Hβε>¬∂VERVER←←400000↓ βH;ENABLES TYPEOUT OF SPECIAL FEATURES ON/OFF
↓ α(βεx¬Batch (left half of ¬εq¬) = 1
↓ ↓Hβπ ¬∂VE1QES←←000001↓ βH;SUPPRESSES CRUFTY OLD ¬
11¶ "FEATURE"
↓ ↓Hβπ@¬∂VE1OPN←←000002↓ βH;OUTPUT PAGE NUMBERS TYPED
↓ ↓Hβπ\¬∂VE1RWG←←000004↓ βH;¬β(This feature no longer supported; use ¬
1¬∂H¬β command instead.)
↓ ↓Hβπ|¬∂VE1TSP←←000010↓ βH;Erroneous tab in middle of justified line treated as space
↓ ↓Hβλ~¬∂VE1LES←←000020↓ βH;Suppress side-effect of comma delimiting macro arguments
↓ ↓Hβλ8¬∂VE1FAI←←000040↓ βH;Fail error mode, don't stop on errors
↓ ↓HβλV¬∂ (use altmode to get back to normal mode)
↓ ↓Hβλt¬∂VE1EOF←←000100↓ βH;CHANGES $, COMMAND TO STOP AT IOPOP (SUB-EOF) AS WELL AS FORMFEED
↓ ↓Hβ	∩¬∂VE1WHT←←000400↓ βH;CAUSES QUIET SKIP OF WHITE SPACE IN MANY SPECIAL-SYNTAX PLACES
↓ ↓Hβ	0¬∂VE1DON←←001000↓ βH;SUPPRESSES WARNING MESSAGE ABOUT INCOMPATIBLE IMPROVEMENT IN
↓ βHβ	N¬∂; RIGHT-KERN FOR OVERLAYS, AND $H-OF-NULL-OVERLAY ERROR MSG
↓ βββ
λ¬βForαexample,αtheαcommand¬
α1¬∂⊂'446;¬βαwillαturnα
onα
theα
simulatorα
andα
enable
↓ βββ
(¬βtheαfullα
REMα
macro-with-argumentα
syntaxα
withα
abilityα
toα
quoteα
portionsα
of
↓ βββ
F¬βargumentsα⊂andα⊂causeα⊂traceα⊂outputα⊂toα⊂appearα⊂onα∂yourα∂terminalα∂asα∂POX
↓ βββ
c¬βruns.α≤Theα∞command¬
α∞1¬∂⊂'1000001;¬βα∞willα
turnα
onα
theα
bitα
thatα
deletesα
the
↓ βββα¬
11¬βα⊃command.α"Atα⊃aα⊃laterα⊃time¬
α⊃1¬∂⊃'2;¬βα⊃willα⊂turnα⊂offα⊂theα⊂traceα⊂without
↓ βββ"¬βaffectingα!theα!simulatorα orα macro-with-argumentsα orα anyα other
↓ βββ@¬βspecial-featureα
bits.
↓ ∧3β{¬REMARKS ON USING THE POX PROGRAM
↓ α_β
≡¬βIfα
youα
haveα
theα
VERTRCα
flagα
enabledα
(seeα
the¬
α1¬∂⊂¬βαcommandαetαal)αvariousαrandomαthingsαwillαget
↓ ↓Hβ
=¬βtypedα
outα
whileα
POXα
isα
running,αincludingαtextαinαyourαinputαfileαappearingαafter¬
α1¬∂;¬βαand¬
α1¬∂,¬βαcommands.
↓ ↓Hβ
]¬βForα⊂theα⊂mostα⊂partα⊂youα⊂mayα⊂ignoreα⊂them.α Ifα⊂youα∂reallyα∂wantα∂toα∂knowα∂aboutα∂them,α∂askα∂REMα∂about
↓ ↓Hβ
{¬βparticularαones,αorαlookα
inα
theα
sourceα
programα
forα
POX.α∀Theseα
traceα
outputsα
areα
allα
subjectα
toα
purgeα
at
↓ ↓Hβ
→¬βanyα
timeα
asα
POXα
develops.
↓ α_β
7¬βToα∪enableα∪someα∪ofα∪theα∩newα∩featuresα∩implementedα∩afterα∩1974α∩Novα∩whichα∩conflictα∩withα∩old
↓ ↓Hβ
T¬βfeatures,α⊃specialα⊃flagsα⊃mustα⊃beα⊃setα⊃earlierα⊃inα⊃yourα⊃inputα⊃fileα⊂(seeα⊂the¬
α⊂1¬∂⊂¬βα⊂commandα⊂etα⊂al)α⊂--α⊂The
↓ ↓Hβ
t¬βdefinitionα
ofα
register¬∂α
∀¬βα
asα
theα
accumulator,α
andα
theα
newly-implementedα
side-effectsα
ofα
q-registerα
"¬∂,¬β"
↓ ↓Hβ∞∩¬βareα∂automaticallyα∂inα∂effectα∂andα∂canα∂notα∞beα∞inhibitedα∞exceptα∞byα∞usingα∞anα∞oldα∞versionα∞ofα∞POXα∞(before
↓ ↓Hβ∞0¬β74.DEC).
↓ ¬Qβ∞k¬Backtrace package
↓ α_β∂∞¬βThereα
areα
5α
kindsα
ofα
errorsα
thatαcanαoccurαwhileαPOXαisαcompilingαaαtextαfile:α⊗(1)αE40α=αbugsαin
↓ ↓Hβ∂,¬βtheαuserαfileαfromαwhichαitαmightαbeαpossibleαtoαcontinueαifαtheαparserα
isα
correctlyα
synchronizedα
orα
ifα
it
↓ 	∞¬α 26↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 27↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬βwillα
re-synchronizeα
itselfα
soonα
enoughα
toα
beαableαtoαdoαtheαrestαofαtheαfileαmostlyαcorrectly.α⊗(2)αE40F
↓ ↓Hβ↓f¬β=α⊃"fatal"α⊃bugsα⊃inα⊃theα⊃userα⊃fileα⊃fromα⊃whichα⊃continuationα⊃isα⊃notα⊃possibleα⊂butα⊂contextα⊂informationα⊂is
↓ ↓Hβα∧¬βavailableαandαmightαbeαhelpfulαtoαtheαuser.α⊗(3)αERRFα=αerrorsαcausedαbyαtheαinputα
fileα
thatα
haveα
wiped
↓ ↓Hβα"¬βoutαallα
contextα
informationα
--α
Thisα
usuallyα
happensα
atα
theα
endα
ofα
aα
fileα
whileα
insideα
theα
modeα
ofα
building
↓ ↓Hβα@¬βupαtheαbodyαofαaαmacroαorαmacro-argument,αcausedαbyαaαmissingαparenthesisαsomewhere.α∃(4)α
FATALα
=
↓ ↓Hβα↑¬βbugsα
inα
POXα
inα
codeα
thatα
isα
inα
aα
stateα
ofα
debuggingα
andα
stillα
hasα
ASCIIα
warningαmessagesαforαdetected
↓ ↓Hβα|¬βerrors.α≤(5)α∞INTERRα∞=α∞internalα∞errorsα∞detectedα∞inα∞POXα∞program,α∞inα
codeα
thatα
shouldn'tα
haveα
anything
↓ ↓Hββ~¬βwrongα
withα
it,α
probablyα
coreα
clobberageα
ratherα
thanα
POXα
bugs.
↓ α_ββ8¬βInα
E40α
errorsα
theα
errorα
messageα
isα
typedα
out,α
thenα
theα
currentα
levelαofαmacroαexpansionαorαfile
↓ ↓HββV¬βinputα
isα
→isa∃H∧~∀→←khλ~∀→S\∧4∀→CE←Uh∧~∀→iQJλ~∀sameα
wayαasαtheαSAILαcompilerαannouncesαcompilationαerrors,αthenαthe
↓ ↓Hββt¬βuserα
hasα
theα
followingα
options:
↓ α_β∧⊃¬β→↓#↓ ↓#Hit¬∂α⊂C¬βα⊂toα⊂closeα⊂theα⊂mainα⊂outputα⊂(.XGP)α⊂file,α⊂patchα⊂inα⊂theα⊂listα⊂ofα∂fontsα∂usedα∂so-far,α∂andα∂exit
↓ ↓Hβ∧0¬βimmediatelyα
asα
ifα
theα
inputα
fileα
hadα
endedα
withα
noα
error;
↓ α_β∧M¬β→↓#↓ ↓#Hit¬∂α⊃P¬βα⊃toα⊃proceedα⊃withα⊃theα⊃programα⊃--α⊃whenα⊂proceedingα⊂fromα⊂illegalα⊂brickα⊂commandα⊂while
↓ ↓Hβ∧l¬βbindingα
argumentαtoαmacro,αtheαtextαofαtheαillegalαcommandαisαpassedαunevaluatedαtoαtheαargumentαjust
↓ ↓Hβ¬
¬βasα
ifα
itα
hadα
beenα
quoted;
↓ α_β¬'¬β→↓#↓ ↓#Hit¬¬α∂<ctrl><meta>¬∂P¬βα∂toα∂clobberα∂theα∂error-callα∂toα∂aα∂NO-OPα∞andα∞proceed.α≤Thusα∞ifα∞theα∞sameα∞error
↓ ↓Hβ¬F¬βhappensα
noα
messageα
willα
beα
generatedα
andα
itα
willα
proceedα
asα
ifα
youα
hadα
typed¬∂α
P¬βα
eachα
time;
↓ α_β¬c¬β→↓#↓ ↓#Hit¬∂α
R¬βα
toα
rememberα
theα
currentα
locationα
inα
theα
sourceα
fileα
andα
proceed;
↓ α_βε↓¬β→↓#↓ ↓#Hit¬¬α
<ctrl><meta>¬∂R¬βα
toα
remember,α
clobber,α
andα
proceed;
↓ α_βε∨¬β→↓#↓ ↓#Hit¬∂α
Q¬βα
toα
performα
skip-returnα
insteadα
ofα
directα
returnα
asα
inα
the¬∂α
P¬βα
command.α~Inα
placesα
where
↓ ↓Hβε>¬βthisα
isα
implementedα
itα
causesαtheαspecialαmodeα(suchαasαjustify)αtoαbeαleftαimmediatelyαbeforeαresuming
↓ ↓Hβε\¬βprocessingα
ofα
input;
↓ α_βεy¬β→↓#↓ ↓#Hit¬¬α⊂<ctrl><meta>¬∂Q¬βα⊂toα⊂clobberα⊂theα⊂errorα∂callα∂toα∂aα∂CAIAα∂(skipα∂always)α∂instruction,α∂thenα∂perform
↓ ↓Hβπ_¬βskip-return.α≤Thisα∞commandα∞isα∞providedα∞onlyα∞forα∞experiencedα∞usersα∞whoα∞areα∞willingα∞toα∞takeα∞theα∞risk
↓ ↓Hβπ6¬βinherentα
inα
thisα
command;
↓ α_βπS¬β→↓#↓ ↓#Hit¬∂α∞T¬βα∞toα∞popα∞upα∞oneα∞macroα∞levelα∞andα∞doα∞aα∞contextα∞displayα
thereα
tooα
[theα
pop-upα
isα
forα
the
↓ ↓Hβπr¬βdisplayedαoutputαonly,αitαdoesn'tα
changeα
theα
pointα
whereα
theα
programα
wouldα
resumeα
ifα
Pα
wereα
hitα
later]
↓ ↓Hβλ⊂¬β--αIfαyouαhaveαpoppedαupαtoαanαactualαinputα
(DSK)α
file,α
orα
wereα
thereα
already,α
youα
can'tα
popα
upα
further
↓ ↓Hβλ.¬βbecauseα
implementatingα
thatα
capabilityα
inα
anα
obviousα
wayα
WOULDα
clobberα
theα
context;
↓ α_βλK¬β→↓#↓ ↓#Hit¬∂α
E¬βα
toα
returnα
toαdisplayαeditorαatαthisαlocationαinαtheαinputαfile.α⊗Theαonlyαwayαthatαcurrently
↓ ↓Hβλj¬βexistsα
forα
gettingα
fromα
Eα
backα
toα
POXα
automaticallyα
withα
theα
correctα
top-levelαfile,αisαtoαhaveαaαdoαfile
↓ ↓Hβ	λ¬βthatαsays:¬∂α⊗POX¬¬α<FILE>¬∂↔¬βαandαtoαtypeαtoαtheαsystem¬∂αDO¬¬α<DOαFILEαNAME><CR><LF>¬βαtheαfirstαtimeαyouα
runα
POX,
↓ ↓Hβ	&¬βthenα
afterwardα
toα
useα
theα
<CTRL><META>¬∂Xα
G¬¬<CR>¬βα
commandα
inα
E;
↓ α_β	C¬β→↓#↓ ↓#Hit¬¬α∪<ctrl><meta>¬∂E¬βα∪toα∪returnα∪toα∪displayα∪editorα∪atα∪theα∩locationα∩youα∩hadα∩itα∩rememberα∩earlier
↓ ↓Hβ	b¬β(Warning,α
ifα
youα
hadα
itα
rememberα
moreα
thanα
oneα
earlierα
location,α
itαisn'tαsupportedαwhatαthisαcommand
↓ ↓Hβ
¬βwillα
do.);
↓ α_β
≥¬β→↓#↓ ↓#Hit¬∂α∂D¬βα∂toα∂goα∂intoα∂debugα∂modeα∂(i.e.,α∂RAID).α≡Hitα∂<ctrl>Pα∂toα∂returnα∂fromα∞RAIDα∞toα∞theα∞backtrace
↓ ↓Hβ
<¬βpackage;
↓ α_β
Y¬β→↓#↓ ↓#Hitα<CALL>αtoαdoαanythingαelse,αlikeα
toα
editα
withα
SOS,α
orα
toα
giveα
upα
entirely,α
orα
toα
"¬∂Fα
DSK¬β"α
then
↓ ↓Hβ
x¬βseeα
whatα
POXα
outputtedα
beforeα
theα
errorα
occurrred.
↓ α_β⊗¬βFromα
E40Fα
errorsα
allα
theα
aboveα
areα
availableα
exceptα
thoseα
whichα
involveα
proceeding.
↓ α_β4¬βIfα
youα
wantα
toα
examineα
yourα
outputα
fileα
accordingα
toα
howα
theα
XGPα
serviceα
parsesα
it,¬∂α
Rα
XGPTYP¬β.
↓ ↓HβR¬βForαinvestigatingαnewαbugsαinαaαlargeαfile,αaα
usefulα
techniqueα
isα
toα
runα
XGPTYPα
onα
bothα
theα
outputα
from
↓ ↓Hβp¬βaα∂backupα∂workingα∂versionα∂ofα∂yourα∂fileα∂andα∂theα∂outputα∂fromα∂theα∞versionα∞youα∞areα∞debugging,α∞then¬∂α∞R
↓ ↓Hβ
∞¬∂SRCCOM¬βα
and¬∂α
TTY:←¬β<OLDα
XGPTYPα
LISTING>¬∂,¬β<NEWα
XGPTYPα
LISTING>.
↓ α_β
,¬βIfα
yourα
fileα
looksα
okα
butα
youα
getα
theα
message¬∂α
XGPSERα
MISSEDα
IT.¬βα_thenα
tryα
appendingα
toα
the
↓ ↓Hβ
J¬βendα
ofα
the¬∂α
XSPOOL¬βα
commandα
theα
switch¬∂α
/NTNODE=31¬β,α
thenα
ifα
itα
stillα
doesn'tα
workα
discussα
itα
withα
RWG
↓ ↓Hβ
h¬βorα
REGα
whoα
areα
expertsα
atα
this.
↓ β`β
#¬Known Bugs in POX (Referred-to earlier in writeup)
↓ α_β
F¬βBUG#2α∂--α∂Fontα∂FORN25α∂andα∂otherα∂fontsα∞withα∞funnyα∞widthα∞charactersα∞causeα∞aα∞fatalα∞error,α∞and
↓ ↓Hβ
c¬βparametersα
5,6α
don'tα
usuallyα
workα
correctly.α~[Newα
bugα
since¬
α
1¬∂5¬βα
and¬
α
1¬∂6¬βα
wereα
implemented,α
theα
bad
↓ ↓Hβ∞α¬βcodeα⊃hasα⊃nowα⊃beenα⊂patched-around,α⊂soα⊂thatα⊂normallyα⊂noα⊂bugα⊂willα⊂occurα⊂but¬
α⊂1¬∂5¬βα⊂and¬
α⊂1¬∂6¬βα⊂willα⊂give
↓ ↓Hβ∞!¬βincorrectα
data,α
butα
ifα
youα
useα
the¬
α
1¬∂⊂'20;¬βαswitchαyouαtakeαyourαchancesα--αsomedayαtheαcodeαmayαbe
↓ ↓Hβ∞A¬βreallyα⊃fixed.]α"--α⊃1976.JAN.03α⊃Iα⊃haven'tα⊃changedα⊃anythingα⊃butα⊃theα⊃fatalα⊃errorα⊃noα⊃longerα⊂happens,
↓ ↓Hβ∞←¬βperhapsα
becauseα
FORN25α
hasα
beenα
changedα
recently.α∀Theα
measurementsα
areα
stillα
wrong,α
however.
↓ 	∞¬α 27↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 28↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ∧>β↓H¬NOTES (Referred to earlier in writeup)
↓ ↓Hβ↓k¬β(NOTEα
1)α
--α
Everywhere,α
exceptα
atα
theα
startα
ofα
theα
top-levelα
file,α
POXα
readsα
charactersα
inα
theα
normal
↓ ↓Hβα	¬βsequence,α
andα
expectsα
allα
syntaxα
toα
beα
left-to-rightα
decodeable.α_Thisα
isα
why,α
forα
example,α
theα
string
↓ ↓Hβα&¬
11¬∂!FOO;¬β,α
ifα
seenα
inα
top-levelα
leftα
context,α
isα
parsedα
asα
[quoteα
theα
escapeα
character,α
thenα
outputα
the
↓ ↓HβαF¬βstringα
"¬∂!FOO¬β"],α
ratherα
thanα
asα
[expandα
theα
macro¬∂α
FOO¬βα
thenα
executeα
theα
commandα
thatα
resultsα
fromα
a
↓ ↓Hβαd¬βbrickα
characterα
inα
frontα
ofα
it].
↓ α_ββα¬βHowever,α
atα
theα
startα
ofα
theα
firstα
top-levelα
inputα
fileα
aα
specialα
initializationα
parserα
isα
employed
↓ ↓Hββ ¬βthatαpre-readsαtheαfirstαtwoαcharactersαthenαdecidesαwhatαtoαdoαregardingαsyntax.α⊗Theαfollowingαtable
↓ ↓Hββ>¬βshowsα
theα
firstα
charactersα
andα
whatα
happensα(hereα"∀"αmeansαanyαcharacterαnotαmentionedαpreviously
↓ ↓Hββ\¬βinα∀theα∀sameα∀context,α∀"∀∀"α∀meansα∀theα∀twoα∀copiesα∀ofα∀someα∪character,α∪"∀∃"α∪meansα∪twoα∪different
↓ ↓Hββz¬βcharacters):
↓ α_β∧_¬∂C¬βα
--α
assumesα
thisα
isα
aα
TV/Eα
directoryα
--α
skipsα
everythingα
untilα
ASCIIα
'014α
(Formα
Feed)α
isα
seen,
↓ ↓Hβ∧6¬βthenα
prereadsα
againα
usingα
onlyα
theα
optionsα
belowα
thisα
one.
↓ α_β∧T¬∂∀|¬βα
--α
assumesα
thisα
isα
aα
"changeα
theα
escapeαcharacter"αcommandα--αjumpsαintoαtheαmiddleαofαthe
↓ ↓Hβ∧q¬
1¬∂|¬¬<CH>¬βα
codeα
--α
inα
myα
opinion,α
thisα
isα
theα
preferredα
wayα
toα
beginα
aα
POXα
fileα
andα
allα
newα
filesα
should
↓ ↓Hβ¬⊃¬βbeginα∂thisα∂wayα∂--α∂forα∞example,α∞yourα∞fileα∞mightα∞beginα∞with¬∂α∞\|\\⊂'4;\M0FIX25;\M1BDR30;\;¬βα∞which
↓ ↓Hβ¬.¬βwouldα
define¬∂α
\¬βα
asα
the¬
α
1¬βα
character,α
changeα
itα
to¬∂α
\¬βα
(i.e.,α
noα
change),α
turnα
onα
theα
simulator,α
defineα
two
↓ ↓Hβ¬N¬βfonts,α
andα
suppressαthe¬¬α<CR><LF>¬βαatαtheαendαofαtheαlineα--αNoteαthatαbecauseαmostαusersαofαPOXαprefer
↓ ↓Hβ¬l¬βtoα⊃useα⊂"¬∂\¬β"α⊂asα⊂theirα⊂brickα⊂character,α⊂ifα⊂youα⊂planα⊂toα⊂useα⊂someα⊂characterα⊂otherα⊂thanα⊂\α⊂asα⊂theα⊂brick
↓ ↓Hβε
¬βcharacterαinαyourαfile,αandαyouαwantαyourαfileαtoα
beα
callableα
(withα
minimumα
hassle)α
asα
aα
requiredα
source
↓ ↓Hβε'¬βfileα
fromα
someα
otherα
file,α
youα
shouldα
probablyα
beginα
yourα
fileα
with¬∂α
\|¬
1¬βα
(where¬
α
1¬βα
denotesα
yourα
local
↓ ↓HβεF¬βbrickα
character)α
andα
put¬
α
1¬∂|\¬βαatαtheαveryαendαofαtheαfile.α⊗--αNoteαthatαthisαdoesαnotαapplyαtoαlibraries
↓ ↓Hβεe¬βofα∂macros,α∂inα∂whichα∂the¬
α∂1¬∂|¬βα∞commandα∞isα∞currentlyα∞ignored,α∞andα∞youα∞shouldα∞avoidα∞changingα∞theα∞brick
↓ ↓Hβπ¬¬βcharacterα
toα
anythingα
otherα
thanα
"\".
↓ α_βπ#¬∂∀∀¬βα
--α
assumeα
thisα
isα
aα
bareα
(out-of-syntax)α
occurrenceα
ofα
theα
escapeα
characterα
forα
purposeα
of
↓ ↓HβπA¬βdefiningα
itα
theα
oldα
wayα
(1973α
MAR-APR),α
followedα
byα
theα
beginningα
ofα
aα
POXα
commandα
--α
jumpsα
into
↓ ↓Hβπ↑¬βtheα
middleα
ofα
theα
escapeα
codeα
atα
theα
pointα
justα
afterα
the¬
α
1¬βα
hasα
beenα
recognized.
↓ α_βπ}¬∂∀.¬βα⊂--α⊂assumeα⊂thisα⊂isα⊂anα⊂old-style¬
α⊂1¬∂;¬βα⊂commandα⊂(don'tα∂relyα∂onα∂this,α∂itα∂isα∂incorrect)α∂--α∂ignore
↓ ↓Hβλ≥¬βthroughα
next¬¬α
<CR><LF>¬βα
thenα
jumpα
intoα
beginningα
ofα
PASS-AS-ISα
loop.
↓ α_βλ;¬∂∀;¬βα
--α
assumeα
thisα
isα
aα
skip-to-crlfα
commandα
--α
doesα
itα
(seeα
above).
↓ α_βλY¬∂∀∃¬βα
--α
assumesα
theα
firstα
isα
theα
escapeα
characterα
andα
thatα
theαuserαisαconfusedαaboutαwhatαtoαdo
↓ ↓Hβλw¬βnextα
--α
jumpsα
intoα
theα
PASS-AS-ISα
loopα
justα
afterα
aα
characterα
hasα
beenα
read,α
toα
beα
ableα
toα
actα
upon
↓ ↓Hβ	∃¬βtheα
∃α
characterα
--α
becauseα
∃α
isα
notα
theα
brickα
character,α
anα
errorα
willα
beα
generatedα
becauseα
POXα
will
↓ ↓Hβ	3¬βattemptα
toα
outputα
theα
∃α
characterα
butα
noα
fontα
hasα
yetα
beenα
defined.
↓ ↓Hβ	n¬β(NOTEα
2)α
--α
THISα
NOTEα
PURGEDα
--α
SEEα
COMMANDS¬
α
1¬∂`¬
α
1¬∂⊂¬
α
1¬∂⊃
↓ ↓Hβ
,¬β(NOTEα3)α--αOfαcourse,αsinceαtheαexpansionαofαaαmacroαgeneratesαaαnewαstringαofαtextαasαifα
itα
hadα
been
↓ ↓Hβ
J¬βinα
theα
inputα
fileα
originally,α
syntaxα
canα
beα
alteredα
ifα
theαbodyαofαaαmacroαbeginsαbutαdoesαnotαcomplete
↓ ↓Hβ
g¬βsomeα
escapeα
sequence.α_Thusα
theα
definition¬
α
1¬∂∞FOO[¬
1¬∂oBIGMESS{4]¬βα
willα
setα
itα
upα
soα
that¬
α
1¬∂!FOO;¬βα
will
↓ ↓Hβπ¬βbeginα∂theα∂definitionα∂ofα∂anα∂atomicα∂textα∂overlayα∂butα∂notα∂finishα∂it,α∂untilα∂someα∂timeα∂laterα∂inα∞theα∞fileα∞an
↓ ↓Hβ%¬βunmatchedα
"¬∂}¬β"α
occurs.α∀Thisα
canα
beα
confusing,α
soα
watchα
yourα
macrosα
carefully.
↓ ↓Hβa¬β(NOTEα
4)α
--αInαnormalαmode,αlettingαtheαsystemαdo¬¬α<LF>¬βαitselfαorαsimulatingαwhatαitαdoes,αsubscriptsαetc.
↓ ↓Hβ¬βcauseα∞irregularα∞spacingα∞ofα∞linesα∞becauseα∞eachα∞lineα
takesα
upα
justα
asα
muchα
spaceα
asα
itα
needsα
toα
avoid
↓ ↓Hβ
≥¬βoverlap.α≡Ifα∂theα∂systemα∂isα∂doing¬¬α∂<LF>¬β'sα∂allα∂byα∂itselfα∞(theα∞onlyα∞modeα∞currentlyα∞implemented),α∞theα∞POX
↓ ↓Hβ
;¬βprogramα
hasn'tα
theα
vaguestα
ideaα
whereα
onα
theα
pageα
theα
currentα
lineα
ofα
textα
willα
beα
locatedα
whenα
the
↓ ↓Hβ
Y¬βsystemαgetsαaroundαtoαputtingαtheαoutputαontoαtheα
XGP.α∀However,α
ifα
POXα
isα
simulatingα
whatα
theα
system
↓ ↓Hβ
w¬βwouldα∞do,α∞thenα∞POXα
isα
usingα
registerα
"¬∂;¬β"α
andα
aα
coupleα
ofα
internalα
locationsα
toα
keepα
trackα
ofα
theα
last
↓ ↓Hβ
∃¬βscan-lineα
used,α
etc.
↓ α_β
3¬βInα
pretty-spacingα
mode,α
theα
baselinesα
ofα
theα
textα
linesα
areα
causedα
toα
beα
evenly-spacedα
evenα
if
↓ ↓Hβ
Q¬βoverlapα
occursα
orα
fontα
sizeα
varies.α~Thisα
isα
doneα
byα
computingα
whereα
theα
topα
scanα
lineα
shouldα
beα
(Y
↓ ↓Hβ
o¬βpositionαofαbaselineαdesired,αminusαYαoffsetαofαworst-caseαsuperscript)αandαtellingα
theα
systemα
toα
doα
the
↓ ↓Hβ∞
¬βlineαthereα(BLETCH!αBLETCH!).α∀Thisα
modeα
isα
obtainedα
byα
settingα
theα
εα
parameterα
toα
correctα
lineα
spacing,
↓ ↓Hβ∞+¬βandα∀settingα∀theα∪λα∪parameterα∪sufficientlyα∪negativeα∪toα∪allowα∪allα∪overlapα∪thatα∪isα∪expectedα∪without
↓ ↓Hβ∞I¬βspreadingα
linesα
furtherα
apart.
↓ ↓Hβ∂∧¬β(NOTEα∞5)α∞--α∞Ifα∞theα∞fontα∞fileα∞isα∞alreadyα∞compiled,α∞the¬
α∞1¬∂M¬βα∞commandα∞merelyα∞mapsα∞fromα∞theα∞logicalα∞font
↓ ↓Hβ∂$¬βnumberα
youα
selectedα
toα
theα
already-compiledα
systemα
fontα
number.α~Ifα
theα
fontα
youα
requestedα
isα
new
↓ 	∞¬α 28↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 29↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬βbutα
theα
logicalα
fontα
numberα
isα
alreadyαinαuse,αitαfindsαaαslot,αloadsαtheαfont,αandαmapsαtheαfontαnumber.
↓ ↓Hβ↓f¬βThusα∂youα∂canα∂re-useα∂logicalα∂fontα∂numbersα∂forα∂multipleα∂fontsα∂(e.g.,α∂ifα∞youα∞haveα∞aα∞macroα∞thatα∞usesα∞a
↓ ↓Hβα∧¬βspecificα∞logicalα∞fontα∞number,α∞youα∞canα∞redefineα∞whatα∞fontα∞thatα
numberα
refersα
toα
betweenα
callsα
toα
the
↓ ↓Hβα"¬βmacro).α≤Thereα∞areα∞onlyα∞16α∞(decimal)α∞logicalα∞fontα∞numbers,α∞andα∞thusα∞youα∞canα∞haveα∞atα∞mostα∞16α∞fonts
↓ ↓Hβα@¬βdefinedα
atα
anyα
oneα
pointα
inα
theα
document,α
butα
byα
re-usingα
fontα
numbersα
youα
canα
haveα
moreα
thanα
16
↓ ↓Hβα↑¬βfontsα
inα
theα
courseα
ofα
theα
entireα
document.α∀Theα
currentα
upperα
limitα
isα
32α
fonts.
↓ ε(ββ→¬TRIVIA
↓ ↓Hββ<¬βPASACTα
--α
Forα
RAIDαexperts,αnoteαthatαatαPASACT+6αisαaαCAIα(NO-OP)αthatαisαexecutedαonlyαwhenαPOX
↓ ↓HββZ¬βtriesα∂toα∂outputα∂aα∂semicolonα∂atα∂passis-level.α≡Patchingα∂itα∂toα∂aα∞HALTα∞orα∞settingα∞aα∞breakpointα∞thereα∞is
↓ ↓Hββx¬βusefulαforα
debuggingα
aα
mysterousα
extraα
semicolonα
thatα
you'veα
created.α∀Ifα
thatα
doesn'tα
findα
theα
problem,
↓ ↓Hβ∧⊗¬βtryα
patchingα
PUTCHR+1α
too.
↓ α_β∧R¬βAsα
longα
asα
thereα
isα
roomα
inα
yourα
mind,α
Iα
mightα
asα
wellα
mentionα
someα
majorα
deficienciesα
ofα
POX.
↓ ↓Hβ∧p¬βThereα
isα
noα
wayα
toα
doα
automaticα
footnotesα
orα
indexesα
orα
cross-references.α_Syntaxα
isα
mostlyαstrange.
↓ ↓Hβ¬∞¬βPOXα∞doesn'tα∞haveα∞theα∞primitivesα∞forα∞measuringα∞lengthsα∞ofα∞textα∞stringsα
(macroα
bodies),α
norα
forα
taking
↓ ↓Hβ¬,¬βsubstrings.α∀Also,α
withoutα
text-responses,α
ligaturesα
can'tα
beα
doneα
conveniently.
↓ α_β¬h¬βONEαFINALαTOUCHαTOαTHISαWRITEUPα--αTheαspirographαnearαtheαbottomαofαthisα
pageα
(orα
theα
next
↓ ↓Hβεε¬βifαthereαwasn'tαroomαhere)αisαaαsimpleαexampleαofαhowαtoαuseαrecursiveα
macrosα
toα
makeα
programα
loops.
↓ ↓Hβε#¬βItα
alsoα
showsα
youα
theα
overshootα
thatα
happensα
withα
almost-horizontalα
vectorsα
ofα
the¬
α
1¬∂v¬βα
type.
↓ ↓Hβεa¬∂_; DRAW SPIROGRAPH STARTING AT (X,Y)/D (x,y)/d offset by (8,9)
↓ ↓Hβε¬∂_∞SPIRO⊂_←X_→a_←Y_→b_←x_/d_+y_→y_+Y_→Y_←y_/d_¬x_→x_+X_→X_; wheel #1 perturbs #0
↓ ↓Hβπ≥¬∂_←X_/D_+Y_→Y_←Y_/D_¬X_→X_; wheel #0
↓ ↓Hβπ;¬∂_←X_+8_→A_←a_+8_→a_←Y_+9_→B_←b_+9_→b_vabAB=2;⊃_; and offset for XGP
↓ ↓HβπY¬∂_;
↓ ↓Hβπw¬∂_∞SPIROS⊂_!SPIRO;_←I_-=1;_→I_?SPIROS;⊃_;
↓ ↓Hβλ∃¬∂_;
↓ ↓Hβλ3¬∂_←=800;_→8_←=1750;_→9_;
↓ ↓HβλQ¬∂_←=-44;_→X_←=26;_→Y_←=2;_→D_;
↓ ↓Hβλo¬∂_←=-29;_→x_←=69;_→y_←=1;_→d_;
↓ ↓Hβ	
¬∂_←=200;_→I_!SPIROS;_;
∧↑π,gp 
∧↑π,β?wα∧←π≡l('
∧←εqd6π∧←ε∧e`β∧←π≡βipα∧dε←tE¬∧dε←εεPβ∧hπ8`V_∂∧hπ8β	}α∧kπFQ@⊂↔∧kπFα`↓∧α∧pεAπ@A∧∧pεAvuQ∧∧wπO&λ-∧wπOα8↓λα∧{ε
{m↓¬α∧}¬k|*↓∃α∧ε+α↓0∧ε+{-uβ∧ε≠{S}α∧π[α∩↓∞α∧
¬||∂↓
α∧
∧ε$	*3¬∧
∧ε$x#Z∧∧
ε¬↑|F↓~α∧
πε7pUε8∧
πε7{∀mβ∧
εD6U
≠∧
εDzmeβ∧

π`↓p↓⊃α∧
∃¬?|}↓%α∧
_πh↓N↓∃α∧
≡ε
>'ε∧
≡ε
y&`β∧
 εX≠⊗
∧
 εXz6Vβ∧
)¬!}0↓/α∧
1π;N↓∧α∧
4πX7↓∩α∧
6πm↓∃↓↔α∧
7π≠]tα∧
:εd∪≤	∧
:¬w∞~≥π∧
:εdz≤Jβ∧
:¬wzλcβ∧
?πr⊗↓∨α∧
A¬	}]↓5α∧
Eε|]dα∧
Oλ	}t↓+α∧
Uλ∀}i↓0α∧
Vεi∂
∨π∧
Vεiz$Aβ∧
Vπig↓∃α∧
Wε↑PUα∧
Y¬j⊂E⊗λ∧
Y¬jzTbβ∧
↑∧v}	↓8α∧
eλ_}Q↓2α∧
oεE≡Iα∧
oλ!}?↓7α∧
q¬BNeα∧
t¬3Vlα∧
t¬#Ytα∧
uπ↑<↓⊂α∧
vεg
L≡π∧
vεgzY:β∧
v¬`PUα∧
y¬b⊃∞∩λ∧
y¬b{∞↑β∧
|¬∪lzα∧
}∧k}2↓5α∧
λ"})↓7α∧
¬αu↓↓α∧
∧¬yyEα∧
ε/}C>α∧
∧t↓¬α∧
λ'}↔↓:α∧
∪∧b→↓
α∧
∀πM⊗↓πα∧
∃ε↑∞≡→π∧
∃ε↑{>6β∧
↔ε
U6α∧
_¬c
k∪ε∧
_¬c{-Vβ∧
≥∧d}\↓1α∧
≡λ$}}↓8α∧
 ∧Y.↓∞α∧
)εuz⊗0β∧
+ε };7α∧
+π∪z}?β∧
,εVx⊂!∧∧
-∧FE↓∀α∧
-λ$}j↓8α∧
.π7x|α∧
0ε~αε)α∧
4εP⊃∞∩λ∧
4¬lπi↔∧∧
4εP|L6α∧
4¬l{-Jβ∧
5π.{"Lβ∧
8ε7q↔⊃π∧
:∧BZ↓∪α∧
;∧g↓(α∧
>¬v¬6≤β∧
>¬v{⊗Cβ∧
FπC{≤Wβ∧
Fπ≥`oα∧
Iε_α@∧
Kε!∧B∨β∧
Kε→|∃3α∧
L¬|βo∨α∧
L¬|{	<β∧
Mλ→}:↓3α∧
Oε:'6π∪∧
Oε:}f:α∧
Qε
αC&α∧
Qε
zE4β∧
V¬8↔
∧
VεV`α∧
W∧o"↓≥α∧
X∧.↓
↓∃α∧
Zε≤{Z5α∧
\ε∀↓>+α∧
\ε∀z,β∧
]ε#xo%∧∧
]ε#z2α∧
↑πQzs↑β∧
←ε`TVε∃∧
←ε`aQα∧
`¬*∩@⊂	∧
aε@t/⊗ε∧
aε@∂Aα∧
eε2w∪≤∧∧
eε2#:α∧
eε∨}VBα∧
h¬~∞↔⊗π∧
jε"λY↔∧∧
kε~{4β∧
kλπ}↓*α∧
n∧D↓∂α∧
v°
L→π∧
v∧"↓A↓∀α∧
wε"ze8β∧
wε*Mα∧
zπZz:bβ∧
}¬⊗\↓α∧∞↓∧
≡ε∧∞↓¬tMPα∧∞↓¬%↑xα∧∞α¬aXYα∧∞¬π`z,eβ∧∞¬¬Cchα∧∞¬πo|X↓≡α∧∞πε$z 9β∧∞λ¬Rk←α∧∞λ¬2noα∧∞	ε~
∀ε∧∞∂ε/z*>β∧∞⊃∧w
λ≡ε∧∞⊗∧≥αβ↓∞α∧∞↔π[ytcβ∧∞≠πS| ↓⊂α∧∞∨∧i
]!ε∧∞∨ε6zλBβ∧∞"εBz!Gβ∧∞&π\yOcβ∧∞'ε	∂≡∃π∧∞*π5{i↓↓α∧∞.∧f∞J∨π∧∞0ε[z=Tβ∧∞3∧"αK↓¬α∧∞5π⊗{&qβ∧∞6πUy⊂`β∧∞6εwznbβ∧∞A∧Z∂  π∧∞D¬s∂j_λ∧∞GπRxX↑∧∧∞M∧\∩$≤	∧∞N∧+β'yα∧∞Q¬l⊂∀→λ∧∞VπGxεY∧∧∞[¬Z
V∨π∧∞c∧=∧∞kα∧∞eπ@w2U∧∧∞g¬N
⊗"ε∧∞m∧W→¬↔
∧∞m¬=≤)¬∧∞t∧R¬⊗\β∧∞w¬.
7.¬∧∞y¬≥λ{6∧∧∞}∧nε<Lβ∧∞}¬
λ"<∧∧∂π'uLI¬∧∂
∧Z-6∞⊗∧∂∃πrm;ε∧∂#εlnε+	∧∂$∧eαXα↓,∧∂+ε.H
≤∧∂+εLe≤
↓ 	∞¬α 29↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 30↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ βsβ↓H¬APPENDIX -- SUMMARY OF ALL POX COMMANDS
↓ ↓tβ↓z¬IN THE APPROXIMATE CHRONOLOGICAL ORDER IN WHICH THEY WERE IMPLEMENTED
↓ ↓Hβα≥¬∂page#
↓ ↓Hβα;¬∂ ↓↓ αH[Original commands by R.E.Maas 1973]
↓ αHβαY¬∂;0↓ ∧HALL OTHERS, ILLEGAL
↓ ↓Hβαw¬∂ 5↓ αH;1  |↓ ∧HSET NEW ESCAPE
↓ ↓Hββ∃¬∂ 3↓ αH;2  M↓ ∧HMAKE A NEW FONT
↓ ↓Hββ3¬∂ 4↓ αH;3  ;↓ ∧HIGNORE THRU LF ETC.
↓ ↓HββQ¬∂ 4↓ αH;4  ,↓ ∧HIGNORE THRU FF
↓ ↓Hββo¬∂ 3↓ αH;5  F↓ ∧HFONT SELECT
↓ ↓Hβ∧
¬∂ 3↓ αH;6  f↓ ∧HFONT SELECT FOR ONE CHARACTER
↓ ↓Hβ∧+¬∂12↓ αH;7  S↓ ∧HSAMPLE
↓ ↓Hβ∧I¬∂ 4↓ αH;10 J↓ ∧HJUSTIFY
↓ ↓Hβ∧g¬∂ 9↓ αH;11 j↓ ∧HJUSTIFY
↓ ↓H⬬¬∂ 4↓ αH;12 C↓ ∧HCENTER
↓ ↓Hβ¬#¬∂ 9↓ αH;13 c↓ ∧HCENTER
↓ ↓Hβ¬A¬∂ 4↓ αH;14 R↓ ∧HRIGHTIFY
↓ ↓Hβ¬←¬∂ 9↓ αH;15 r↓ ∧HRIGHTIFY
↓ ↓Hβ¬}¬∂ 7↓ αH;16 ←+-*/\¬∧∨%L~_ Q-REGISTER ARITHMETIC
↓ ↓Hβε≠¬∂ 7↓ αH;17 →↓ ∧HQ REGISTER DEPOSIT
↓ ↓Hβε9¬∂ 8*↓ αH;62 ↑↓↓ ∧HQ-REGISTER SUB/SUP-SCRIPT [GENERATES ESCAPE SEQ. VIA XCT W]
↓ ↓HβεW¬∂ 8↓ αH;20 ∩∪⊗↓ ∧HMOVE BASELINE.
↓ αHβπ∪¬∂[Added by R.E.Gorin 1973-74]
↓ ↓Hβπ1¬∂ 8↓ αH;21 U↓ ∧HUNDERSCORE
↓ ↓HβπO¬∂10↓ αH;22 P↓ ∧HPUSH
↓ ↓Hβπm¬∂10↓ αH;23 p↓ ∧HPOP
↓ ↓Hβλ¬∂ 9↓ αH;24 '↓ ∧HQUOTE WITH RUBOUT <<NOT RECOMMENDED>>
↓ ↓Hβλ)¬∂10↓ αH;25 λ↓ ∧HSET SPECIAL LINE SPACE FROM AC0
↓ ↓HβλG¬∂10↓ αH;26 V↓ ∧HVECTOR
↓ ↓Hβλe¬∂11↓ αH;27 Y↓ ∧HSet Y position
↓ αHβ	!¬∂[Added by R.E.Maas 1974-77]
↓ ↓Hβ	?¬∂15,17↓ αH;30 ∞↓ ∧HDefine macro
↓ ↓Hβ	]¬∂15,18↓ αH;31 !↓ ∧HCall macro
↓ ↓Hβ	{¬∂15,18↓ αH;32 ?↓ ∧HIf QREGAC>0 then call macro else scan but null semantics
↓ ↓Hβ
→¬∂15,18↓ αH;   I↓ ∧HWhile QREGAC>0 continue calling macro
↓ ↓Hβ
7¬∂16↓ αH;33 @↓ ∧HRequire source file, then return
↓ ↓Hβ
U¬∂16↓ αH;34 α↓ ∧HJump to file, don't return
↓ ↓Hβ
s¬∂10*↓ αH;26 v↓ ∧Hpretty vector
↓ ↓Hβ⊃¬∂10↓ αH;35 Q↓ ∧HPUSH WITH ARG
↓ ↓Hβ/¬∂10↓ αH;36 q↓ ∧HPOP WITH ARG
↓ ↓HβM¬∂13↓ αH;37 o↓ ∧HDEFINE ATOMIC TEXT OVERLAY
↓ ↓Hβk¬∂14↓ αH;40 O↓ ∧HOUTPUT OVERLAY
↓ ↓Hβ
	¬∂14↓ αH;41 123456↓ ∧HLOAD QREGAC WITH PARAMETER FROM OVERLAY <<5,6 NOT WORKING>>
↓ ↓Hβ
'¬∂24↓ αH;42 `↓ ∧H[TEMPORARY] SET UP VERSION FLAGS <<NOT RECOMMENDED>>
↓ ↓Hβ
E¬∂14↓ αH;43 &↓ ∧HCOMBINE SEVERAL OVERLAYS INTO ONE, WITH OFFSETS EACH
↓ ↓Hβ
c¬∂15↓ αH;44 ∂↓ ∧HRENAME OVERLAY IN COMPLICATED WAY
↓ ↓Hβ
↓¬∂14↓ αH;45 :↓ ∧HCLOBBER SELECTED SIZE PARAMETER OF OVERLAY
↓ ↓Hβ
∨¬∂11↓ αH;46 ε↓ ∧HSET MINIMUM BASELINE SPACING, USED IN CONJUNCTION WITH λ
↓ ↓Hβ
=¬∂ 4↓ αH;47 <SP><TB>↓ ∧HIGNORE SPACES UNTIL ; SEEN (FOR PRETTY SOURCE FILES)
↓ ↓Hβ
[¬∂ 4↓ αH;50 <VT>N↓ ∧HBREAK TO NEXT LINE HERE WITHOUT AFFECTING SYNTAX
↓ ↓Hβ
y¬∂12↓ αH;51 u↓ ∧HCALLI UUO
↓ ↓Hβ∞↔¬∂ 9↓ αH;52 "↓ ∧HQUOTE THE NEXT CHARACTER (WITHOUT RUBOUT UNLESS NEEDED)
↓ αHβ∞5¬∂;53 n↓ ∧HNO PAGE CHANGE NEXT TIME <<NOT SUPPORTED>>
↓ ↓Hβ∞S¬∂ 9↓ αH;54 A↓ ∧HCVT QREG TO CHARACTER (WITHOUT RUBOUT UNLESS NEEDED) AND OUTPUT
↓ ↓Hβ∞q¬∂24↓ αH;55 ⊂↓ ∧HTURN ON DEBUG FLAGS -- VLEVE←VLEVEL∨ARG
↓ ↓Hβ∂∂¬∂24↓ αH;56 ⊃↓ ∧HTURN OFF DEBUG FLAGS -- VLEVEL←VLEVEL∧(¬ARG)
↓ ↓Hβ∂-¬∂ 8↓ αH;57 {[↓ ∧HSTART UNDERLINE [WRITES ESCAPE SEQUENCE VIA XCT W]
↓ 	∞¬α 30↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ 	∞¬α 31↓ βqβ↓α¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ ↓Hβ↓H¬∂ 8↓ αH;60 }]↓ ∧HSTOP UNDERLINE [DITTO]
↓ ↓Hβ↓f¬∂ 9↓ αH;61 D↓ ∧HCONVERT DECIMAL TO STRING MACRO AND SPLICE NOW [INPDL]
↓ ↓Hβα∧¬∂14*↓ αH;40 W↓ ∧HSAME AS O BUT FORCES ON SAME PAGE, DOES NOT AFFECT PAGE PRINTER
↓ ↓Hβα"¬∂16↓ αH;63 β↓ ∧HDO LOOKUP ON FILE, WARN IF MISSING, BUT DON'T READ IT
↓ ↓Hβα@¬∂16*↓ αH;33 ∀↓ ∧HSCAN OF LIBRARY OF MACRO DEFINITIONS
↓ ↓Hβα↑¬∂10↓ αH;64 #↓ ∧HPUSH FONT# ON STACK
↓ ↓Hβα|¬∂10↓ αH;65 G↓ ∧HPOP FONT# FROM STACK AND SELECT
↓ ↓Hββ~¬∂11↓ αH;66 y↓ ∧HFUDGE Y0 PARAMETERS TO ADJUST VERTICAL POS.
↓ ↓Hββ8¬∂11↓ αH;67 BbTte↓ ∧HSET AND READ BOTTOM MARGIN (TMAR+PMAR) OR TOP MARGIN
↓ ↓HββV¬∂23↓ αH;70 <=>↓ ∧HALTERNATE-OUTPUT-FILE, OPEN OUTPUT-TO CLOSE
↓ ↓Hββt¬∂12↓ αH;71 ∃↓ ∧HGET DATE/TIME-LAST-WRITTEN OF INPUT FILE
↓ ↓Hβ∧∩¬∂24↓ αH;72 E↓ ∧HEXECUTE TASK ON PSEUDOTELETYPE
↓ ↓Hβ∧0¬∂16↓ αH;   m↓ ∧HMESSAGE ON TTY
↓ ↓Hβ∧N¬∂12,14↓ αH;73 sH↓ ∧Hat current x,y location, store x,,y or emit overlay-qua-character
↓ ↓Hβ∧l¬∂12↓ αH;74 g↓ ∧Hget internal parameters
↓ ↓Hβ¬
¬∂ 9↓ αH;75 a↓ ∧HPUT ASCII VALUE OF NEXT CHAR INTO QREGAC
↓ ↓Hβ¬(¬∂11↓ αH;76 ≤↓ ∧HSET MAXIMUM INTERWORD GAP
↓ αHβ¬d¬∂[Not yet implemented]
↓ αHβεα¬∂;N1 X↓ ∧H(RESERVED FOR EXTENDED-SCANNER TO BE IMPLEMENTED SOMEDAY)
↓ αHβε ¬∂;N2 π↓ ∧H(RESERVED FOR ILLEGAL COMMAND TO ENTER DEBUG PACKAGE)
↓ β-βεf¬INDEX TO POX COMMANDS IN ASCII-ALPHABETICAL ORDER
↓ αkβπ∪¬NUMBER REFERS TO SUMMARY OF COMMANDS IN PREVIOUS TABLE
↓ α/βπ@¬AN ASTERISK HERE MEANS IT'S NOT LOCATED IN NUMERICAL ORDER THERE
↓ αHβπr¬∂xx0↓ βHxx1↓ ∧Hxx2↓ ¬Hxx3↓ εHxx4↓ πHxx5↓ λHxx6↓ 	Hxx7
↓ ↓Hβλ∨¬∂00x↓ αHNUL 00↓ βH↓ 62*↓ ∧Hα 34↓ ¬Hβ 63↓ εH∧ 16↓ πH¬ 16↓ λHε 46↓ 	Hπ N2
↓ ↓HβλL¬∂01x↓ αHλ 25↓ βHTB 47↓ ∧HLF 00↓ ¬HVT 50↓ εHFF 00↓ πHCR 00↓ λH∞ 30↓ 	H∂ 44
↓ ↓Hβλy¬∂02x↓ αH⊂ 55↓ βH⊃ 56↓ ∧H∩ 20↓ ¬H∪ 20↓ εH∀ 33*↓ πH∃ 71↓ λH⊗ 20↓ 	H↔
↓ ↓Hβ	&¬∂03x↓ αH_ 16↓ βH→ 17↓ ∧H~ 16↓ ¬H≠↓ εH≤ 76↓ πH≥↓ λH≡↓ 	H∨ 16
↓ ↓Hβ	S¬∂04x↓ αHSP 47↓ βH! 31↓ ∧H" 52↓ ¬H# 64↓ εH$↓ πH% 16↓ λH& 43↓ 	H' 24
↓ ↓Hβ
¬∂05x↓ αH( (?)↓ βH)↓ ∧H* 16↓ ¬H+ 16↓ εH, 04↓ πH- 16↓ λH. 03↓ 	H/ 16
↓ ↓Hβ
-¬∂06x↓ αH0↓ βH1 41↓ ∧H2 41↓ ¬H3 41↓ εH4 41↓ πH5 (41)↓ λH6 (41)↓ 	H7 41
↓ ↓Hβ
Z¬∂07x↓ αH8 30↓ βH9↓ ∧H: 45↓ ¬H; 03↓ εH< 70↓ πH= 70↓ λH> 70↓ 	H? 32
↓ ↓Hβπ¬∂10x↓ αH@ 33↓ βHA 54↓ ∧HB 67↓ ¬HC 12↓ εHD 61↓ πHE 72↓ λHF 05↓ 	HG 65
↓ ↓Hβ4¬∂11x↓ αHH 73↓ βHI 32↓ ∧HJ 10↓ ¬HK↓ εHL 16↓ πHM 02↓ λHN 50↓ 	HO 40
↓ ↓Hβa¬∂12x↓ αHP 22↓ βHQ 35↓ ∧HR 14↓ ¬HS 07↓ εHT 67↓ πHU 21↓ λHV 26↓ 	HW 40*
↓ ↓Hβ
∞¬∂13x↓ αHX N1↓ βHY 27↓ ∧HZ↓ ¬H[ 57↓ εH\ 16↓ πH] 60↓ λH↑ 62*↓ 	H← 16
↓ ↓Hβ
;¬∂14x↓ αH` 42↓ βHa 75↓ ∧Hb 67↓ ¬Hc 13↓ εHd↓ πHe 67↓ λHf 06↓ 	Hg 74
↓ ↓Hβ
h¬∂15x↓ αHh↓ βHi↓ ∧Hj 11↓ ¬Hk↓ εHl↓ πHm 72↓ λHn 53↓ 	Ho 37
↓ ↓Hβ
∃¬∂16x↓ αHp 23↓ βHq 36↓ ∧Hr 15↓ ¬Hs 73↓ εHt 67↓ πHu 51↓ λHv 26*↓ 	Hw (26)
↓ ↓Hβ
B¬∂17x↓ αHx↓ βHy 66↓ ∧Hz↓ ¬H{ 57↓ εH| 01↓ πHALT 00↓ λH} 60↓ 	HBS 00
↓ α_β
}¬β(Toα
useα
theα
aboveα
tableα
toα
locateα
theα
commandα
correspondingα
toα
aαparticularαcharacter,αlookαup
↓ ↓Hβ∞≤¬βtheα∩characterα∩accordingα∩toα∩ASCIIα∩number,α∩useα∩theα∩numericalα∩entryα∩inα∩theα⊃tableα⊃toα⊃referenceα⊃the
↓ ↓Hβ∞:¬βprecedingαtable,α
andα
readα
theα
descriptionα
onα
thatα
table.α∀Thatα
firstα
tableα
nowα
includesα
pageα
numbersα
for
↓ ↓Hβ∞X¬βyourα∂convenienceα∂inα∂locatingα∂theα∂fullα∂descriptionα∂elsewhereα∂inα∂thisα∂writeup.α≡Theα∞tableα∞ofα∞contents,
↓ ↓Hβ∞v¬βhowever,α
willα
usuallyα
beα
moreα
usefulα
forα
locatingα
generalα
typesα
ofα
commands.)
↓ 	∞¬α 31↓ βqβ⊂ ¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
↓ βfβ↓H¬PROTOTYPE OVERLAY XEROGRAPHICS -- WRITEUP
↓ ε
β↓u¬CONTENTS
↓ ∧∀βαT¬β(page numbers here can be used to select individual pages for XSPOOLing) ↓↓
↓ ↓Hβα|¬Contents [this page, generated after p.31, bound before p.1]¬α↓ ]i
∧β≤↓H↓
≡∧β!↓H↓
≡↓ ↓Hββ)¬Introduction↓ G 1
↓ α(ββV¬Sample POX manuscript↓ G 2
↓ α(β∧β¬This writeup, organization, modes, notation↓ G 2
↓ α(β∧0¬BNF notation used in this writeup↓ G 3
∧∧P↓H↓
≡∧∧U↓H↓
≡↓ ↓Hβ∧]¬Basic commands↓ G 3
↓ α(β¬
¬Table of modes and commands↓ G 4
↓ α(β¬7¬Examples↓ G 5
↓ ↓Hβ¬d¬Linefeed simulator↓ G 6
∧ε∧↓H↓
≡∧ε	↓H↓
≡↓ ↓Hβε⊃¬Registers and XY coordinates↓ G 6
↓ α(βε>¬Arguments to commands↓ G 6
↓ α(βεk¬Commands (most of the POX commands are in this section...)↓ G 7
↓ α(βπ_¬...Vectors...↓ @10
↓ α(βπE¬...Interline spacing...↓ @10
↓ α(βπr¬Examples↓ @12
∧λ∩↓H↓
≡∧λ↔↓H↓
≡↓ ↓Hβλ∨¬Overlays↓ @13
↓ α(βλL¬Examples↓ @15
∧λl↓H↓
≡∧λq↓H↓
≡↓ ↓Hβλy¬Macros without arguments, require source files↓ @15
↓ α(β	&¬Examples↓ @17
∧	F↓H↓
≡∧	K↓H↓
≡↓ ↓Hβ	S¬Macros with arguments↓ @17
↓ α(β
¬Commands↓ @17
↓ α(β
-¬Detailed algorithm of evaluation↓ @19
↓ α(β
Z¬Examples↓ @20
↓ α(βπ¬Detailed examples of argument evaluation↓ @20
↓ α(β4¬Advanced examples (MONTH<N>, EVAL, RECURSE, DEFCONT, EVERYPAGE) ↓ @21
↓ ↓Hβa¬Alternate output (text) files↓ @23
∧
↓↓H↓
≡∧
ε↓H↓
≡↓ ↓Hβ
∞¬Special-feature bits↓ @24
↓ α(β
;¬Batch 0↓ @25
↓ α(β
h¬Batch 1↓ @26
↓ α(β
∃¬Examples↓ @26
∧
5↓H↓
≡∧
:↓H↓
≡↓ ↓Hβ
B¬Remarks on using the POX program↓ @26
↓ α(β
o¬Backtrace/Error package↓ @26
↓ α(β∞≤¬Known bugs in POX (by number)↓ @27
↓ α(β∞I¬Notes (by number)↓ @28
↓ α(β∞v¬Trivia↓ @29
∧∂⊗↓H↓
≡∧∂≠↓H↓
≡↓ ↓Hβ∂#¬Appendix↓ @30
↓ α(β∂P¬Chronological list of commands (with page references)↓ @30
↓ α(β∂}¬ASCII sequence table↓ @31
↓ 	_¬α i↓ β{β⊂9¬αPOX writeup, last edited 1981 JUN 2  20:27 -- page 
/FONT#0=NGR30/FONT#2=BDI25= #()+,-./0123456789:ABCEFHIJLMNOPRSTUVWXZabcdefghiklmnopqrstuvwxyy/FONT#3=NGR25=↓¬ελ∞∀∃⊗_→ !"#$'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXY[\]←abcdefghijklmnopqrstuvwxyz{|}}/FONT#4=POXNGB[CSP,DOC]= $(),.2:ACDEGHIJNOPRSTXY[]abcdefghiklmnopqrstuvwxyy/FONT#5=POXNGR[CSP,DOC]=↓∧∂⊂⊃∩∪⊗_→≤≥∨ !"$%()+,-./012<=>ABCDEFGHIKLMNOPRSTUVWXY[]↑←abcdefghijklmnopqrstuvwxy{|}}/FONT#6=XMAS25=abcdefghijklmnopqrstuvwxyzz/FONT#7=POXBRK[CSP,DOC]=11/FONT#9=GRK30=inn/FONT#12=POXBRK[CSP,DOC]=11/FONT#14=GRKL50=SS/FONT#15=FIX25=↓αβ∧¬επλ	


∞∂⊂⊃∩∪∀∃⊗↔_→~≠≤≥≡∨ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]↑←`abcdefghijklmnopqrstuvwxyz{|}}